Rumah > hujung hadapan web > tutorial js > Bagaimanakah saya boleh memuat naik berbilang imej dengan cekap menggunakan AJAX, PHP dan jQuery?

Bagaimanakah saya boleh memuat naik berbilang imej dengan cekap menggunakan AJAX, PHP dan jQuery?

Barbara Streisand
Lepaskan: 2024-11-24 18:20:14
asal
876 orang telah melayarinya

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

Memuat Naik Berbilang Imej Menggunakan AJAX, PHP dan jQuery

Dalam perbincangan ini, isu memuat naik berbilang imej menggunakan teknik AJAX ditangani. Pengguna menerangkan mengalami kesukaran dalam menghantar berbilang fail melalui AJAX, yang membawa kepada penghantaran fail yang tidak lengkap. Artikel ini menyediakan penyelesaian komprehensif yang memanfaatkan JSON untuk memproses objek fail dengan cekap dan memudahkan muat naik yang berjaya.

HTML

Kod HTML berikut menetapkan struktur halaman web , termasuk elemen untuk fungsi seret dan lepas, input fail dan bahagian untuk memaparkan kemajuan muat naik dan hasil:

<div>
Salin selepas log masuk

CSS

Penggayaan digunakan untuk meningkatkan antara muka pengguna dan memberikan isyarat visual semasa proses muat naik fail:

#uploads {
  display: block;
  position: relative;
}

#uploads li {
  list-style: none;
}
Salin selepas log masuk

JavaScript

Kod JavaScript mengendalikan proses muat naik fail, memanfaatkan AJAX untuk berkomunikasi dengan pelayan. Ia menggunakan JSON untuk merangkum data fail dan teknik HTML5 untuk penjejakan kemajuan:

$(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
            });
        })
    });
});
Salin selepas log masuk

PHP

Skrip PHP menerima data fail yang dikodkan dalam format JSON dan mengembalikannya sebagai rentetan JSON:

<?php
if (isset($_POST["file"])) {
    // process file object
    $file = json_encode($_POST["file"]);
    // return file as JSON string
    echo $file;
};
?>
Salin selepas log masuk

Dengan melaksanakan teknik ini, anda boleh dengan cekap muat naik berbilang imej menggunakan AJAX, PHP dan jQuery. Pendekatan JSON memudahkan penghantaran fail dan penggunaan penjejakan kemajuan meningkatkan pengalaman pengguna dengan memberikan maklum balas masa nyata tentang status muat naik.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memuat naik berbilang imej dengan cekap menggunakan AJAX, PHP dan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan