Easyui上传文件的问题

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

<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 });
        }

搞定~

 

附:如果要限制上传文件类型,直接在data-option中设置accept属性即可,如

<input class="easyui-filebox" data-options="accept: 'image/*'"/>

image/*中*为通配符,对应清单如下

类型accept对应值描述
*.3gppaudio/3gpp, video/3gpp3GPP Audio/Video
*.ac3audio/ac3AC3 Audio
*.asfallpication/vnd.ms-asfAdvanced Streaming Format
*.auaudio/basicAU Audio
*.csstext/cssCascading Style Sheets
*.csvtext/csvComma Separated Values
*.docapplication/mswordMS Word Document
*.dotapplication/mswordMS Word Template
*.dtdapplication/xml-dtdDocument Type Definition
*.dwgimage/vnd.dwgAutoCAD Drawing Database
*.dxfimage/vnd.dxfAutoCAD Drawing Interchange Format
*.gifimage/gifGraphic Interchange Format
*.htmtext/htmlHyperText Markup Language
*.htmltext/htmlHyperText Markup Language
*.jp2image/jp2JPEG-2000
*.jpeimage/jpegJPEG
*.jpegimage/jpegJPEG
*.jpgimage/jpegJPEG
*.jstext/javascript, application/javascriptJavaScript
*.jsonapplication/jsonJavaScript Object Notation
*.mp2audio/mpeg, video/mpegMPEG Audio/Video Stream, Layer II
*.mp3audio/mpegMPEG Audio Stream, Layer III
*.mp4audio/mp4, video/mp4MPEG-4 Audio/Video
*.mpegvideo/mpegMPEG Video Stream, Layer II
*.mpgvideo/mpegMPEG Video Stream, Layer II
*.mppapplication/vnd.ms-projectMS Project Project
*.oggapplication/ogg, audio/oggOgg Vorbis
*.pdfapplication/pdfPortable Document Format
*.pngimage/pngPortable Network Graphics
*.potapplication/vnd.ms-powerpointMS PowerPoint Template
*.ppsapplication/vnd.ms-powerpointMS PowerPoint Slideshow
*.pptapplication/vnd.ms-powerpointMS PowerPoint Presentation
*.rtfapplication/rtf, text/rtfRich Text Format
*.svfimage/vnd.svfSimple Vector Format
*.tifimage/tiffTagged Image Format File
*.tiffimage/tiffTagged Image Format File
*.txttext/plainPlain Text
*.wdbapplication/vnd.ms-worksMS Works Database
*.wpsapplication/vnd.ms-worksWorks Text Document
*.xhtmlapplication/xhtml+xmlExtensible HyperText Markup Language
*.xlcapplication/vnd.ms-excelMS Excel Chart
*.xlmapplication/vnd.ms-excelMS Excel Macro
*.xlsapplication/vnd.ms-excelMS Excel Spreadsheet
*.xltapplication/vnd.ms-excelMS Excel Template
*.xlwapplication/vnd.ms-excelMS Excel Workspace
*.xmltext/xml, application/xmlExtensible Markup Language
*.zipaplication/zipCompressed Archive
   

 

转载于:https://www.cnblogs.com/DevilX5/p/7391262.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值