Hallo!
Ich habe ein kleines Problem mit curl und großen Dateien. Ich steuere mit cUrl einen Web-Service an, der mit dann die entsprechende Datei zurückliefert. Wenn diese Datei allerdings eine gewisse Größe erreicht, macht der Server die Grätsche und ich kriege nur einen 500 zurück. Die Datei, die ich anspreche hat eine Größe von ca. 50 MB. Mit kleineren Dateien funktioniert das Script einwandfrei. Kann mir jemand einen Tipp geben, wie ich das evtl. besser machen kann? Meine PHP-Version ist die 5.3.1 auf einem IIS und hier ist mein Code:
Ich habe ein kleines Problem mit curl und großen Dateien. Ich steuere mit cUrl einen Web-Service an, der mit dann die entsprechende Datei zurückliefert. Wenn diese Datei allerdings eine gewisse Größe erreicht, macht der Server die Grätsche und ich kriege nur einen 500 zurück. Die Datei, die ich anspreche hat eine Größe von ca. 50 MB. Mit kleineren Dateien funktioniert das Script einwandfrei. Kann mir jemand einen Tipp geben, wie ich das evtl. besser machen kann? Meine PHP-Version ist die 5.3.1 auf einem IIS und hier ist mein Code:
PHP Code:
// Set-up Query URL
// -------------------------------------------------------------
$url = 'http://link/zum/webservice';
// Init the cURL Session
// -------------------------------------------------------------
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_FAILONERROR, 1);
curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($session, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($session, CURLOPT_TIMEOUT, 6000);
curl_setopt($session, CURLOPT_USERPWD, "username:password");
// Execute cURL Session
// -------------------------------------------------------------
$result = curl_exec($session); // run the whole process
// Check if cURL returns an error. If not print the result
// to the screen
// -------------------------------------------------------------
if(curl_errno($session) != 0){
echo '<pre>';
print_r(curl_getinfo($session));
echo "\n\ncURL error number:" . curl_errno($session);
echo "\n\ncURL error:" . curl_error($session);
echo '</pre>';
} else {
header('Content-Type: ' . $_GET['dFormat']);
header('Content-Disposition: attachment; filename="' . $_GET['dOriginalName'] . '"');
echo $result;
}
curl_close($session);
Comment