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,才能完整的傳遞文件數據,進行下面的操做.網站

相關文章
相關標籤/搜索