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 ?

Comment télécharger des fichiers volumineux depuis une URL vers un serveur sans problèmes de mémoire ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-29 06:06:11884parcourir

How to Download Large Files from a URL to a Server Without Memory Issues?

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!

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