Dateien ohne Speicherprobleme von einer URL auf einen Server herunterladen
Das Herunterladen von Dateien von einer URL auf einen Server ist eine häufige Aufgabe, kann aber zu einer werden ein Problem beim Umgang mit großen Dateien aufgrund von Speicherbeschränkungen. Mit dieser Frage wird eine Lösung für dieses Problem untersucht.
Problem:
Herkömmliche Methoden zum Herunterladen von Dateien, wie etwa file_get_contents() gefolgt von file_put_contents(), können zu Speicherproblemen führen beim Umgang mit großen Dateien, was zu Downloads führt scheitern.
Lösung:
Um Speicherprobleme zu vermeiden, bietet PHP einen alternativen Ansatz, bei dem eine Stream-Ressource als Datenparameter für file_put_contents() verwendet wird. Diese Methode ermöglicht das direkte Schreiben der Datei auf die Festplatte, während sie heruntergeladen wird, und verhindert so eine Speichererschöpfung.
Code:
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
Erklärung:
Durch die Übergabe einer Stream-Ressource an file_put_contents() wird der PHP-Stream-Kopiermechanismus verwendet, um Daten direkt von der Quell-URL an die zu übertragen Zieldatei. Dadurch entfällt die Notwendigkeit, die gesamte Datei in den Speicher zu laden, wodurch das Problem der Speichererschöpfung gelöst wird.
Das obige ist der detaillierte Inhalt vonWie lade ich große Dateien von einer URL auf einen Server herunter, ohne dass es zu Speicherproblemen kommt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!