在HTML5之前,有一系列jQuery的技術和外掛程式來實作AJAX檔案上傳。 HTML5引進了可以簡化檔案上傳的FormData類別。本篇文章為大家介紹使用jQuery HTML5和FormData上傳檔案的方法範例。
$('#myform').on('sumbit', function(){ var form = $(this); var formdata = false; if (window.FormData) { formdata = new FormData(form[0]); } var formAction = form.attr('action'); $.ajax({ url : '/upload', data : formdata ? formdata : form.serialize(), cache : false, contentType : false, processData : false, type : 'POST', success : function(data, textStatus, jqXHR){ // Callback code } }); });
你不需要任何插件,flash或iframe技巧就能有效的實作。這裡有一些技巧可以讓這些程式碼以我們期望的方式運作:
當我們建立FormData的實例時,我們傳遞form [0]而不是form。它的意思是實際的表單元素,但不是jQuery選擇器。
我們只是傳遞false而不是定義contentType。這意味著jQuery不向請求添加 Content-Type頭部。
我們設定processData為false,所以,jQuery不會將我們的data值(以FormData為基礎)轉換為字串。
以上是使用jQuery HTML5和FormData上傳檔案的方法範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!