PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   cURL Upload 0 Byte (https://www.php-resource.de/forum/php-developer-forum/90280-curl-upload-0-byte.html)

weltvolk 20-02-2008 18:31

cURL Upload 0 Byte
 
Zwar platziert das folgende Skript die Zieldatei im Zielverzeichnis, allerdings hat diese immer 0 Byte:
PHP-Code:

<?php
$url 
"ftp://benutzername: passwort@ftp.kundencontroller.de:21/www/data/pro/avatar.gif";
  echo 
"Ziel: $url<br>"
//$datei als URL funktioniert nicht
$datei "http://www.website.de/bilder/avatar.gif";
  echo 
"Quelle: $datei<br>"
$ch curl_init();
$fp fopen($datei"rb");
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_UPLOAD1);
curl_setopt($chCURLOPT_INFILE$fp);
curl_setopt($chCURLOPT_INFILESIZEfilesize($datei)); 
curl_exec($ch);
curl_close($ch); 
fclose($fp);
?>

Server läuft mit PHP Version 4.4.8_pre20070816-pl0-gentoo. cURL ist enabled (libcurl/7.16.4 OpenSSL/0.9.8e zlib/1.2.3 libidn/0.6.9). Wo liegt der Fehler?

PHP-Desaster 20-02-2008 20:16

Was gibt dir curl_exec denn zurück? Dreh das error_reporting mal hoch!

weltvolk 21-02-2008 11:18

Habe error_reporting(E_ALL) an den Anfang des Skriptes gesetzt, aber es wird keine Fehlermeldung ausgegeben. Liegt es daran, dass das Skript online ist? Vielleicht wäre das auch der Grund dafür, dass der cURL-Upload nicht funktioniert, geht es nur mit offline-Skripten?

curl_exec gibt nichts zurück ...

PHP-Desaster 21-02-2008 12:44

Zitat:

curl_exec gibt nichts zurück ...
Das glaube ich dir nicht.
PHP-Code:

var_dumpcurl_exec$ch ) ); 

ergibt?

ghostgambler 21-02-2008 12:45

Was gibt denn filesize($fp) zurück?

PHP-Desaster 21-02-2008 12:49

Zitat:

Was gibt denn filesize($fp) zurück?
Wenn dann filesize($path)

weltvolk 21-02-2008 13:42

var_dump(curl_exec($ch)) gibt string(0) "" und var_dump(filesize($datei)) gibt bool(false) zurück :(

ghostgambler 21-02-2008 14:19

Zitat:

Original geschrieben von weltvolk
var_dump(filesize($datei)) gibt bool(false) zurück :(
Na dann hast doch das Problem.
Es ist nicht curl, sondern das, was du an curl übergibst.

Funktioniert filesize mit dem http-wrapper überhaupt? Was für Header schickt die Datei? Content-Length vorhanden?
Ansonsten kannst du die Datei auf deinem Server temporär zwischen speichern?

weltvolk 21-02-2008 17:19

Stimmt, filesize() funktioniert so nicht, allerdings geht es mit der VirtualDocumentRoot-Pfadangabe:
PHP-Code:

$datei "/home/benutzername/www/data/bilder/avatar.gif"


ghostgambler 21-02-2008 20:01

Na darauf hättest auch früher ausweichen können…
Daten direkt aus dem Filesystem zu holen ist nämlich deutlich performanter, als über den Webserver zu gehen!

weltvolk 21-02-2008 22:23

Ja, die Möglichkeit eines Datentransfers zwischen 2 Servern baue ich nun in einen FTP-Client ein. Da ist auch cURL-Download zu gebrauchen:
PHP-Code:

<?php
$url 
"ftp://benutzername: passwort@ftp.kundencontroller.de:21/www/data/bilder/avatar.gif";
  echo 
"Quelle: $url<br>";
$datei "/home/benutzername/www/data/pro/avatar.gif";
  echo 
"Ziel: $datei<br>";
$fp fopen($datei"wb");
$ch curl_init();
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_RETURNTRANSFER0);
curl_setopt($chCURLOPT_UPLOAD0);
curl_setopt($chCURLOPT_FILE$fp);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

:rocks:


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:16 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG