Curl upload

Wie es mit Curl geht weiss ich nicht, aber mit meiner HTTP-Klasse geht es ganz einfach. Zudem ist diese von Curl unabhaengig da sie lediglich mit fsockopen() arbeitet. ;)

Uebrigens: Wenn Du von einem anderen Server was auf Deinen ziehst handelt es sich nicht um einen Upload sondern um einen Download. ;)
 
Also kann ich damit, dateien auf meinen webspace laden?
würde dies auch bei funpic funktionieren?

vll könntest du das nochmal näher erleutern
 
Zuletzt bearbeitet:
Solange der Hoster Dir die Moeglichkeit gibt mit fsockopen() zu arbeiten sollte es keine Probleme geben die Klasse einzusetzen.
Auch die PHP-Version spielt keine Rolle da ich eine Version fuer PHP5 und auch eine fuer PHP4 habe.
Fuer die jeweils aktuellste Version kannst Du ueber den Link in meiner Signatur zu meiner Klassensammlung kommen.

Wie die Klasse eingesetzt wird findest Du im zuvor verlinkten Tutorial. Ist im Grunde ganz einfach.
 
Hab mir die Klasse von Dennis Wronka jetzt nicht angesehen, aber ich denke diese macht nichts anderes als:

- Socket vom Quellserver (da wo dein PHP Script liegt) zu öffnen zum Zielserver(ip+port)
- HTTP Header versenden mit GET auf das Bild
- empfangen der Antwort (Inhalt der bild.jpg) und speichern in Variable

Nun kann man den Inhalt der Variable per fopen() + fwrite() auf den Quellserver speichern, also das Bild.

Ist im Prinzip nichts anderes, was dein Browser jedes mal auch macht, nur das es halt von einem PHP Script ausgeht.

Kannst dir ja mal das Beispiel auf http://de2.php.net/manual/de/function.fsockopen.php ansehen.
 
Vielen Danke!

Wie kann ich den Benutzernamen / passwort setzen lassen über curl/fsockopen
 

Anhänge

  • authentifizeirrung.gif
    authentifizeirrung.gif
    11 KB · Aufrufe: 47
Also wenn du es mit cUrl machen willst. Hattest du dir die das Manual mal dazu angeschaut? (http://de.php.net/manual/de/function.curl-setopt.php)

da gibts eine Option
CURLOPT_USERPWD Benutzername und Passwort im Format "[benutzername]:[passwort]"

Das muss wie alle setopts vor dem Request eben eingestellt werden. Bei fsockopen steht in den beispielen auch mehrfach Code zum Authentifizieren: (http://de.php.net/manual/de/function.fsockopen.php)

PHP:
$urlString .= "Authorization: Basic ".base64_encode("$user:$pass")."\r\n";
fputs($urlHandle, $urlString)
 
PHP:
<?   $url = "http://192.168.122.122/Jpeg/CamImg.jpg";

   $ch = curl_init();

   curl_setopt($ch, CURLOPT_URL,$url);

   curl_setopt($ch, CURLOPT_VERBOSE, 1);

   curl_setopt($ch, CURLOPT_POST, 0);

   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

   curl_setopt($ch, CURLOPT_USERPWD,"gast:gast");

   $returned = curl_exec($ch);

   curl_close ($ch);

   echo $returned;
   ?>
damit zeige ich das bild an! aba womit kann ich es als datei speichern?
 
PHP:
<? 
$url = "http://pics.flexmex.net/lion.jpg";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_POST, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_USERPWD,"gast:gast");

$returned = curl_exec($ch);

curl_close ($ch);

$fp = fopen('test.jpg', 'x');

if(fwrite($fp, $returned)) {
	echo "gespeichert";
} else { 
	echo "nein";
}
?>

Funktioniert einwandfrei ;)
 
dankeschön! hätt nich xD weil ich hab nur mit fput und so gearbeitet nich fwrite

naja thx ich schreibe noch nen script und das proste ich dann hier könnt ja jeder mal gebrauchen :D
 
Zurück