Rumah >pembangunan bahagian belakang >tutorial php >Cara Boleh Muat Turun Fail Besar dalam PHP dengan Amanah: Teknik Apakah yang Boleh Mengelakkan Pemindahan Rosak atau Tidak Lengkap?
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!'; }
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!