Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich große Dateidownloads mit cURL streamen, um Speicherprobleme zu vermeiden?

Wie kann ich große Dateidownloads mit cURL streamen, um Speicherprobleme zu vermeiden?

DDD
Freigeben: 2024-12-01 13:35:10
Original
228 Leute haben es durchsucht

How Can I Stream Large File Downloads with cURL to Avoid Memory Issues?

Streaming großer Datei-Downloads mit CURL

Das Herunterladen großer Remote-Dateien kann eine Herausforderung sein, insbesondere wenn die Dateien nicht in den verfügbaren Speicher passen Der Server. Dies kann ein häufiges Problem bei der Verwendung von CURL sein, das Dateidaten standardmäßig im Speicher speichert, bevor sie auf die Festplatte geschrieben werden.

Glücklicherweise gibt es eine Lösung, mit der Sie die Datei stattdessen direkt auf die Festplatte streamen können. Um dies zu erreichen, nehmen Sie die folgenden Anpassungen an Ihrem Code vor:

<?php
set_time_limit(0);

// Open a file pointer for writing
$fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+');

// Set up CURL options
$ch = curl_init(str_replace(" ", "%20", $url));

// Set timeout to a high enough value
curl_setopt($ch, CURLOPT_TIMEOUT, 600);

// Write CURL response to the file pointer
curl_setopt($ch, CURLOPT_FILE, $fp);

// Enable following of location headers
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// Execute CURL
curl_exec($ch);

// Close CURL and the file pointer
curl_close($ch);
fclose($fp);
Nach dem Login kopieren

Indem Sie CURLOPT_FILE auf den Dateizeiger setzen, weisen Sie CURL an, die heruntergeladenen Daten direkt in die Datei auf der Festplatte zu schreiben, anstatt sie im Speicher zu speichern . Dadurch wird sichergestellt, dass auch sehr große Dateien ohne Speicherbeschränkungen reibungslos heruntergeladen werden können.

Das obige ist der detaillierte Inhalt vonWie kann ich große Dateidownloads mit cURL streamen, um Speicherprobleme zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage