借助formdata實現表單的序列化,完成檔案上傳
此時不是借助表單提交方式,所以enctype屬性可以去掉
1.表單方式
$("button[data-action='upload']").on("click", function()/file/ajaxupload.do";
var formdata = new formdata($("#fileform")[0]);
ajaxupload(url, formdata);
});
$("button[data-action='upload2']").on("click", function()/file/ajaxupload.do";
// 資料
var formdata = new formdata();
// 檔案
var files = $("#fileform input[name='upload']")[0].files;
if(files != null && files.length > 0)
ajaxupload(url, formdata);
});
**:
上傳的檔案解析和通過表單上傳相同,多了通過@responsebody返回json,相應可以在前台給出上傳的結果;
(1)web經常使用的功能之一是表單資料的序列化,xmlhttprequest 2級為此定義了formdata型別。formdata為序列化表單以及建立與表單格式相同的資料(用於通過xhr傳輸)提供了便利。
(2).formdata可用於上傳檔案,而對於$("#fileform").serialize()只能序列化普通資料
(3).使用formdata不必明確設定請求頭部,xhr物件能識別傳入資料的型別是formdata例項,並配置適當的頭部資訊。
(4).現在主流瀏覽器都支援該型別,所以在使用時需要注意一下。具體對於formdata的使用方法參考<
Ajax方式上傳檔案
用到兩個物件 第乙個物件 formdata 第二個物件 xmlhttprequest 目前新版的firefox 與 chrome等支援html5的瀏覽器完美的支援這兩個物件,但ie9尚未支援 formdata 物件,還在用ie6 只能仰天長嘆.有了這兩個物件,我們可以真正的實現ajax方式上傳檔案。...
Ajax方式上傳檔案
用到兩個物件 第乙個物件 formdata 第二個物件 xmlhttprequest 目前新版的firefox 與 chrome 等支援html5的瀏覽器完美的支援這兩個物件,但ie9尚未支援 formdata 物件,還在用ie6 只能仰天長嘆.有了這兩個物件,我們可以真正的實現ajax方式上傳檔案...
Ajax方式上傳檔案
用到兩個物件 第乙個物件 formdata 第二個物件 xmlhttprequest 目前新版的firefox 與 chrome等支援html5的瀏覽器完美的支援這兩個物件,但ie9尚未支援 formdata 物件,還在用ie6 只能仰天長嘆.有了這兩個物件,我們可以真正的實現ajax方式上傳檔案。...