Téléchargements fiables de fichiers volumineux en PHP
En PHP, le transfert transparent de fichiers volumineux pose un défi. Pour garantir l'intégrité des fichiers pendant les téléchargements, il est crucial d'explorer des alternatives à l'approche classique de lecture de fichiers (fread).
Options pour des transferts de fichiers améliorés
Envisagez d'utiliser des fonctions telles que http_send_file et http_send_data. Ces fonctions gèrent la transmission de fichiers plus efficacement, résolvant potentiellement les problèmes associés à l'utilisation de fread.
Groupement de fichiers
Si des options plus professionnelles ne sont pas disponibles, le regroupement de fichiers est une solution pratique. . En divisant le fichier en segments plus petits, PHP peut les transmettre de manière incrémentielle, réduisant ainsi le risque d'erreurs. Le code suivant montre comment mettre en œuvre cette technique :
$chunksize = 5 * (1024 * 1024); // 5 MB per chunk if (file_exists($filename)) { header('Content-Length: ' . filesize($filename)); if (filesize($filename) > $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!'; }
N'oubliez pas de vous assurer que votre fichier est enregistré au format UTF-8 pour éviter toute corruption pendant le processus de téléchargement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!