Maison >développement back-end >tutoriel php >Comment télécharger des fichiers volumineux depuis une URL vers un serveur sans problèmes de mémoire ?
Télécharger un fichier depuis une URL vers un serveur sans problèmes de mémoire
Le téléchargement de fichiers sur un serveur à partir d'une URL est une tâche courante, mais cela peut devenir un problème lors du traitement de fichiers volumineux en raison de limitations de mémoire. Cette question explore une solution à ce problème.
Problème :
Les méthodes traditionnelles de téléchargement de fichiers, telles que file_get_contents() suivi de file_put_contents(), peuvent rencontrer des problèmes de mémoire. lors de la manipulation de fichiers volumineux, ce qui entraîne des téléchargements échouer.
Solution :
Pour éviter les problèmes de mémoire, PHP propose une approche alternative utilisant une ressource de flux comme paramètre de données pour file_put_contents(). Cette méthode permet d'écrire le fichier directement sur le disque lors de son téléchargement, évitant ainsi l'épuisement de la mémoire.
Code :
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
Explication :
En passant une ressource de flux à file_put_contents(), le mécanisme de copie de flux PHP est utilisé pour transférer des données directement depuis l'URL source au fichier cible. Cela évite d'avoir à charger l'intégralité du fichier en mémoire, résolvant ainsi le problème d'épuisement de la mémoire.
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!