Maison  >  Article  >  développement back-end  >  Comment puis-je télécharger des fichiers depuis un serveur FTP directement vers un navigateur sans utiliser le stockage local ?

Comment puis-je télécharger des fichiers depuis un serveur FTP directement vers un navigateur sans utiliser le stockage local ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 15:01:01661parcourir

How can I download files from an FTP server directly to a browser without using local storage?

Téléchargement de fichiers depuis des serveurs FTP vers des navigateurs sans stockage local

Lors du téléchargement de fichiers depuis des serveurs FTP à l'aide de scripts PHP, il est courant de stocker les fichiers temporairement sur le serveur web avant de les envoyer au navigateur de l'utilisateur. Cependant, cette approche peut s'avérer inefficace.

Obtenir le contenu du fichier sans le stocker

Pour envoyer directement un fichier au navigateur sans l'enregistrer sur le disque, supprimez simplement la mise en mémoire tampon de sortie fonctions (ob_start() et ob_get_contents()). Ce code enverra le fichier directement au flux de sortie :

<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>

Ajout d'un en-tête Content-Length

Pour inclure l'en-tête Content-Length, interrogez la taille du fichier en utilisant ftp_size() avant de télécharger :

<code class="php">$file_path = "remote/path/file.zip";
$size = ftp_size($conn_id, $file_path);</code>

Ensuite, définissez les en-têtes appropriés et téléchargez le fichier :

<code class="php">header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($file_path));
header("Content-Length: $size");

ftp_get($conn_id, "php://output", $file_path, FTP_BINARY);</code>

Considérations supplémentaires

N'oubliez pas de gérer les erreurs et de fournir des informations appropriées sur le fichier dans les en-têtes de réponse, y compris le nom du fichier à télécharger. Pour un guide complet, reportez-vous aux ressources liées. En utilisant ces techniques, vous pouvez télécharger efficacement des fichiers depuis des serveurs FTP directement vers les navigateurs, sans avoir besoin de stockage temporaire.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn