使用AJAX、PHP 和jQuery 上傳多個圖像
在本討論中,解決了使用AJAX 技術上傳多個圖像的問題。使用者描述在透過 AJAX 傳輸多個檔案時遇到了困難,導致檔案傳輸不完整。本文提供了一個全面的解決方案,利用 JSON 高效處理文件物件並促進成功上傳。
HTML
以下 HTML程式碼建立了網頁的結構,包括用於拖放功能的元素、檔案輸入以及用於顯示上傳進度和結果:
<div>
CSS
應用樣式來增強使用者介面並在文件上傳過程中提供視覺提示:
#uploads { display: block; position: relative; } #uploads li { list-style: none; }
JavaScript
JavaScript 程式碼處理檔案上傳過程中,利用 AJAX 與伺服器進行通訊。它利用JSON 封裝檔案資料和HTML5 技術進行進度追蹤:
$(document).on("change", "input[name^='file']", function (e) { e.preventDefault(); var This = this, display = $("#uploads"); // process file object $.each(This.files, function (i, file) { var reader = new FileReader(), dfd = new $.Deferred(); reader.onload = function (e) { // convert file to data URL dfd.resolveWith(file, [e.target.result]) }; reader.readAsDataURL(new Blob([file], { "type": file.type })); dfd.then(function (data) { // send file data using AJAX $.ajax({ url: "/echo/json/", type: "POST", data: { "file": JSON.stringify({ "file": data, "name": file.name, "size": file.size, "type": file.type }) } }) .then(function (data, textStatus, jqxhr) { console.log(data) display.append("<br /><li>", img, "</li><br />"); return data }, function (jqxhr, textStatus, errorThrown) { console.log(errorThrown); return errorThrown }); }) }); });
PHP
PHP 腳本接收以JSON 格式編碼的檔案資料並傳回為JSON 字元串:
<?php if (isset($_POST["file"])) { // process file object $file = json_encode($_POST["file"]); // return file as JSON string echo $file; }; ?>
透過實現這些技術,您可以使用AJAX、PHP和jQuery。 JSON方式簡化了檔案傳輸,進度追蹤的使用透過提供上傳狀態的即時回饋增強了使用者體驗。
以上是如何使用 AJAX、PHP 和 jQuery 高效上傳多個映像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!