Besoin d'un script php à télécharger un fichier sur un serveur distant et de les enregistrer localement
Essayez de télécharger un fichier sur un serveur distant et l'enregistrer dans un sous-répertoire local.
Le code suivant semble fonctionner pour les petits fichiers, < 1 MO, mais les plus gros fichiers juste le temps de sortir et de ne même pas commencer à télécharger.
<?php
$source = "http://someurl.com/afile.zip";
$destination = "/asubfolder/afile.zip";
$data = file_get_contents($source);
$file = fopen($destination, "w+");
fputs($file, $data);
fclose($file);
?>
Des suggestions sur la façon de télécharger des fichiers volumineux sans interruption?
- Avez-vous essayé CURL?
- Je vous remercie pour votre réponse. Je n'ai pas de boucle sur le système qui héberge le script.
Vous devez vous connecter pour publier un commentaire.
file_get_contents
ne doit pas être utilisé pour les gros fichiers binaires parce que vous pouvez facilement atteindre la limite mémoire de PHP. Jeexec()
wget
en lui indiquant l'URL et le nom de fichier de sortie:wget http://public-url-of-the-file
Depuis PHP 5.1.0, file_put_contents() prend en charge l'écriture pièce par pièce par le passage d'un courant-poignée de dollars paramètre de données:
J'ai toujours utiliser ce code,il fonctionne très bien.
Utilisation de cette solution si vous ne connaissez pas le format du fichier que vous allez télécharger.
Essayer phpRFT:http://sourceforge.net/projects/phprft/files/latest/download?source=navbar
Il ont progress_bar et simple nom de fichier detactor...
Une meilleure et plus léger script qui est le fichier de transmission en continu: