1. 程式人生 > >Easyui上傳文件的問題

Easyui上傳文件的問題

filename idt result current 每一個 class orm catch itl

首先,添加以下代碼到前端界面

<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上傳文件的問題