標籤:指定路徑 saveas res success 沒有 web erro .sh 目標
首先,添加以下代碼到前端介面
<form id="fm" method="post" enctype="multipart/form-data" style="margin:0;padding:20px 50px"> <div style="margin-bottom:20px;font-size:14px;border-bottom:1px solid #ccc">上傳檔案</div> <div style="margin-bottom:10px"> <input id=‘upfile‘ class="easyui-filebox" name="file1" multiple="true" data-options="prompt:‘選擇檔案‘,buttonText:‘選擇檔案‘" style="width:300px"/> <a id="sub" href="#" class="easyui-linkbutton" iconCls="icon-add" onclick="submit()" plain="true">上傳檔案</a> </div></form>
需要注意的地方:easyui-filebox必須要加上name屬性,不加後台就沒法擷取。
千萬不要糾結於使用 $(‘#upfile‘).filebox(‘getValue‘) 擷取檔案路徑反饋為 C:\fakepath\... 的問題,這個跟上傳檔案真的沒有一點關係。
寫入對應的JS代碼
function submit() { $(‘#fm‘).form(‘submit‘, { url: ‘/UploadDemo/UploadFiles‘, onSubmit: function () { return $(this).form(‘validate‘); }, success: function (result) { var result = eval(‘(‘ + result + ‘)‘); if (result.success) { $.messager.show({ title: ‘提示‘, msg: ‘上傳成功‘ }); } else { $.messager.show({ title: ‘錯誤‘, msg: result.errorMsg }); } } }); }
控制器寫入上傳檔案代碼
[HttpPost] public ActionResult UploadFiles() { var success = false; var errorMsg = ""; //擷取用戶端上傳的檔案集合 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; if (files.Count == 0) { errorMsg = "未擷取到任何檔案"; return Json(new { success = success, errorMsg = errorMsg }); } try { //定義檔案存放的目標路徑 string targetDir = System.Web.HttpContext.Current.Server.MapPath("~/Content/Upload/touxiang"); //擷取檔案集合中的每一個檔案 for (int i = 0; i < files.Count; i++) { HttpPostedFile file = files[i]; //組合成檔案的完整路徑 string path = System.IO.Path.Combine(targetDir, System.IO.Path.GetFileName(file.FileName)); //儲存上傳的檔案到指定路徑中 file.SaveAs(path); } success = true; } catch (System.Exception ex) { errorMsg = ex.ToString(); return Json(new { success = success, errorMsg = errorMsg }); } return Json(new { success = success, errorMsg = errorMsg }); }
搞定~
Easyui上傳檔案的問題