后台
public ActionResult Uploadfile() { const string savePath = "/UploadFile/File/"; const string saveUrl = "/UploadFile/File/"; const string fileTypes = ".xls,.xlsx"; const int maxSize = 110000000; var hash = new Hashtable(); var file = Request.Files.Get(0); var type = Request["type"];//type=1 文件名不重置 if (file == null) { hash = new Hashtable(); hash["error"] = 1; hash["message"] = "請選擇文件"; return Json(hash, "text/html;charset=UTF-8"); } var dirPath = Server.MapPath(savePath); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } var fileName = file.FileName; var extension = Path.GetExtension(fileName); if (extension != null) { var fileExt = extension.ToLower(); var fileTypeList = ArrayList.Adapter(fileTypes.Split(',')); if (!fileTypeList.Contains(fileExt)) { hash = new Hashtable(); hash["error"] = 1; hash["message"] = "上傳文件格式有誤"; return Json(hash, "text/html;charset=UTF-8"); } if (file.InputStream == null || file.InputStream.Length > maxSize) { hash = new Hashtable(); hash["error"] = 1; hash["message"] = "上傳文件大小超過限制"; return Json(hash, "text/html;charset=UTF-8"); } var newFileName = type == "1" ? fileName : DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt; var filePath = dirPath + newFileName; file.SaveAs(filePath); var fileUrl = saveUrl + newFileName; hash = new Hashtable(); hash["error"] = 0; hash["url"] = fileUrl; } return Json(hash, "text/html;charset=UTF-8"); }
前台 layui
//上傳excel upload.render({ elem: '#UploadFile' , url: '/Home/UploadFile?path=beforeExamInfo&sign=2' , accept: 'file' //普通文件 , exts: 'xls|xlsx' //只允許上傳Excel文件 , choose: function (obj) { layer.msg('數據上傳中...', { icon: 16, shade: 0.01, time: 0 }) } , done: function (res) { layer.close(layer.msg()); if (res.error != 0) { layer.alert("上傳失敗:<br/>" + res.message, { icon: 5 }); } else { layer.msg("上傳成功", { icon: 6, time: 1000 }); active["reload"].call(); } } });