Cara Boleh Muat Turun Fail Besar dalam PHP dengan Amanah: Teknik Apakah yang Boleh Mengelakkan Pemindahan Rosak atau Tidak Lengkap?

Susan Sarandon
Lepaskan: 2024-11-11 07:30:03
asal
614 orang telah melayarinya

How to Reliably Download Large Files in PHP: What Techniques Can Avoid Corrupted or Incomplete Transfers?

Memuat Turun Fail Besar dengan Boleh Dipercayai dalam PHP: Menangani Isu Pemindahan

Apabila memuat turun fail besar melalui PHP, menghadapi masalah dengan pemindahan yang rosak atau tidak lengkap boleh mengecewakan. Untuk menangani isu ini, pertimbangkan pendekatan berikut:

Chunking Files

Kaedah paling mudah dalam PHP ialah memecah fail kepada segmen yang lebih kecil. Teknik ini amat berkesan untuk fail besar yang melebihi had memori PHP.

$filename = $filePath . $filename;
$chunksize = 5 * (1024 * 1024);

if (file_exists($filename)) {
    set_time_limit(300);
    $size = filesize($filename);

    // Set headers
    header('Content-Type: application/octet-stream');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ' . $size);

    if ($size > $chunksize) {
        $handle = fopen($filename, 'rb');
        while (!feof($handle)) {
          print(@fread($handle, $chunksize));
          ob_flush();
          flush();
        }
        fclose($handle);
    } else {
        readfile($path);
    }

    exit;
} else {
    echo 'File "' . $filename . '" does not exist!';
}
Salin selepas log masuk

Fungsi Alternatif

Selain daripada fopen dan fgets, pertimbangkan untuk menggunakan fungsi PHP seperti http_send_file atau http_hantar_data. Fungsi ini direka khusus untuk menghantar kandungan fail dan boleh meningkatkan kebolehpercayaan pemindahan.

Skrip Khusus

Untuk senario yang lebih maju, terokai skrip khusus yang memanfaatkan protokol seperti cURL atau FTP untuk mengendalikan muat turun fail dengan cekap. Skrip ini boleh memberikan kawalan dan fleksibiliti tambahan.

Pertimbangan Tambahan

Pastikan fail anda disimpan dalam pengekodan UTF-8 untuk mengelakkan rasuah semasa muat turun. Sahkan bahawa pelayan anda mempunyai memori dan had masa yang mencukupi untuk mengendalikan muat turun yang besar. Jika perlu, tingkatkan had memori menggunakan ini_set('memory_limit', '1G').

Atas ialah kandungan terperinci Cara Boleh Muat Turun Fail Besar dalam PHP dengan Amanah: Teknik Apakah yang Boleh Mengelakkan Pemindahan Rosak atau Tidak Lengkap?. 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