首頁 > web前端 > js教程 > 如何使用 AJAX、PHP 和 jQuery 高效上傳多個映像?

如何使用 AJAX、PHP 和 jQuery 高效上傳多個映像?

Barbara Streisand
發布: 2024-11-24 18:20:14
原創
884 人瀏覽過

How can I efficiently upload multiple images using AJAX, PHP, and jQuery?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板