Maison >développement back-end >tutoriel php >Comment télécharger directement des fichiers depuis FTP vers le navigateur de l'utilisateur en PHP sans stockage sur disque ?

Comment télécharger directement des fichiers depuis FTP vers le navigateur de l'utilisateur en PHP sans stockage sur disque ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 12:03:30629parcourir

How to Directly Download Files from FTP to User's Browser in PHP without Disk Storage?

Téléchargement de fichiers via un script PHP depuis FTP vers un navigateur sans stockage sur disque

En utilisant PHP, les fichiers peuvent être récupérés efficacement à partir de serveurs FTP. Cependant, que se passe-t-il si l'objectif est de livrer directement le fichier au navigateur de l'utilisateur, en contournant le stockage sur disque local ?

Méthode sans tampon de sortie :

Pour y parvenir, il suffit supprimez les fonctions de mise en mémoire tampon de sortie (ob_start() et ses homologues) :

<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, suivez ces étapes :

  1. Interrogez la taille du fichier à l'aide de ftp_size().
  2. Définissez les en-têtes HTTP pour le type de contenu, la disposition et la longueur.
  3. Utilisez ftp_get() pour récupérez le fichier directement dans le navigateur.

Exemple de code :

<code class="php">$conn_id = ftp_connect("ftp.example.com");
ftp_login($conn_id, "username", "password");
ftp_pasv($conn_id, true);

$file_path = "remote/path/file.zip";
$size = ftp_size($conn_id, $file_path);

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>

Notes supplémentaires :

  • N'oubliez pas de gérer correctement les erreurs.
  • Pour un aperçu complet de la gestion des fichiers FTP, reportez-vous à la documentation « Liste et téléchargement des fichiers cliqués à partir de FTP ».

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