C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)
生活随笔
收集整理的這篇文章主要介紹了
C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前做項目的時候要用到上傳文件的功能,現在我總結一下,上傳文件和刪除文件的代碼,在以后的使用的過程中也更方便查找。
[HttpPost]public ActionResult EditUser(){var userDal = new UserDal();const string savePath = "/Images/Avatar/";const string saveUrl = "/Images/Avatar/";const string fileTypes = "gif,jpg,jpeg,png,bmp";const int maxSize = 1000000;Hashtable hash;HttpPostedFile file = System.Web.HttpContext.Current.Request.Files["upload"];var id = System.Web.HttpContext.Current.Request.Params["id"];var posttitle = System.Web.HttpContext.Current.Request.Params["posttitle"];if (file == null){hash = new Hashtable();hash["success"] = false;hash["msg"] = "請選擇上傳文件";return Json(hash, "text/html;charset=UTF-8");}string dirPath = System.Web.HttpContext.Current.Server.MapPath(savePath);if (!Directory.Exists(dirPath)){hash = new Hashtable();hash["success"] = false;hash["msg"] = "上傳目錄不存在";return Json(hash, "text/html;charset=UTF-8");}string fileName = file.FileName;string fileExt = Path.GetExtension(fileName).ToLower();ArrayList fileTypeList = ArrayList.Adapter(fileTypes.Split(','));if (file.InputStream == null || file.InputStream.Length > maxSize){hash = new Hashtable();hash["success"] = false;hash["msg"] = "上傳文件大小超過限制";return Json(hash, "text/html;charset=UTF-8");}if (string.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1){hash = new Hashtable();hash["success"] = false;hash["msg"] = "上傳文件擴展名是不允許的擴展名";return Json(hash, "text/html;charset=UTF-8");}string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;string filePath = dirPath + newFileName;file.SaveAs(filePath);string fileUrl = saveUrl + newFileName;hash = new Hashtable();try{var user = userDal.GetByUser(id);var imgurl = user.Avatar;var pathall = _userimgpath + imgurl.Replace("/","\\");if (System.IO.File.Exists(pathall)){System.IO.File.Delete(pathall);}userDal.Update(new User(){Id = id,PostTitle = posttitle,Avatar = fileUrl});hash["success"] = true;hash["msg"] = "上傳成功";return Json(hash, "text/html;charset=UTF-8");}catch (Exception){hash["success"] = false;hash["msg"] = "上傳失敗";return Json(hash, "text/html;charset=UTF-8");}}總結一下:
將前臺上傳的文件通過System.Web.HttpContext.Current.Request.Files[]方法獲取到然后根據已知的路徑保存到文件夾中,如果已經存在了這個文件,就將它從文件夾中刪除,最后將成功或失敗的數據通過hashtable轉換成json傳遞到前臺,一個C#的文件上傳和刪除文件就這樣完成了。
總結
以上是生活随笔為你收集整理的C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql性能监控指标及分析
- 下一篇: 安装jenkins插件的两种方法