ASP.NET MVC 文件异步上传问题处理

最近在作一个网站,用asp.net MVC4.0来开发,今天遇到了个小问题,经过查找相关渠道解决了,在这里把这个问题写出来,问题很是简单,不喜勿喷,mark之但愿能够给遇到相同问题的初学者一点帮助。
我要实现文件的异步上传,前端提交的文件后台总是获取不到。
我前端是这样写的:前端

@using (Ajax.BeginForm("UpdateNewInfo", "Home", new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterAdd" }, new { id = "form1" }))
    {
        <table>
                <td>选择图片</td>
                <td>
                    <input type="file" id="uploadImg" name="fileUpImg" />
                    <input type="button" id="btnFileUp" value="上传图片"/>        
                </td>
            </tr>                     
        </table>        
    }

选择一张图片,点击上传图片按钮,图片就异步上传到服务器,提交的是一个Form表单,使用ajaxSubmit来异步上传文件。ajax

后台获取文件信息服务器

HttpPostedFileBase postFile = Request.Files["fileUpImg"];

可是postFile对象一直为空,查看Form表单,又显示有数据,那么问题出在哪里呢?app

这个问题困扰了我一上午,而后再博问里提问,立刻就有人指出了个人错误。asp.net

问题在这里异步

@using (Ajax.BeginForm("UpdateNewInfo", "Home", new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterAdd" }, new { id = "form1", enctype = "multipart/form-data" }))

原来咱们传文件的时候必须设置Form表单的enctype=”multipart/form-data”post

表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认状况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操做.网站

相关文章
相关标签/搜索