使用jQuery 序列化檔案上傳
使用jQuery 的serialize() 函數提交帶有檔案上傳欄位的表單時,可以擷取檔案數據具有挑戰性的。與其他表單元素不同,檔案輸入無法序列化為字串。
要繞過此限制,您可以使用 FormData 物件。 FormData 提供了一種將表單資料(包括文件)編碼為更適合提交的格式的方法。
以下程式碼片段示範如何使用 FormData 處理檔案上傳:
$(document).on("submit", "form", function(event) { event.preventDefault(); $.ajax({ url: $(this).attr("action"), type: $(this).attr("method"), dataType: "JSON", data: new FormData(this), processData: false, contentType: false, success: function (data, status) { }, error: function (xhr, desc, err) { } }); });
With透過此方法,FormData 建構函式擷取所有表單元素,包括檔案輸入。透過將 processData 設為 false 並將 contentType 設為 false,jQuery 不會嘗試序列化數據,從而使瀏覽器能夠正確處理檔案上傳。
在伺服器端,可以透過$_FILES 超全域數組,就像在傳統檔案上傳場景中一樣。
以上是如何使用 jQuery 處理 FormData 的檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!