Datei von Webserver kopieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfragen
beitrag
biet
bild
byte
datei
error
fatal error
funktion
gel
image
kleine frage
kleinen funktion
lade
laut
mode
null
parameter
permission
vielen dank
-
Hi Leute
Ich hab da mal ne kleine Frage.
Also daheim habe ich nenn Apache offen. Nun biete ich da ein Image zum Download an. Ist es mit PHP nun irgendwie m?glich auf das Bild zuzugreifen und zu speichern auf dem Webspace, der das PHP Script ausf?hrt.
Kleine Schema
Server 1 ----> Anfrage ----> Server 2
Wenn Anfrage erfolgreich dann
Server 1 -----> lade bild.jpg ----> Server 2
Mal schauen ob das ?berhaupt geht :)
Gru? Tobi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du willst also einfach ein Bild von einem anderen Server laden?
Das m?sste mit der Funktion "file_get_contents ()" gehen.
Einfach
$img_data = file_get_contents ( 'http://irgendwo.imnirgendwo.de/bild.jpg' );
Dann musst du nur noch $img_data in eine Datei schreibe und diese unter xy.jpg abspeichern.
Sollte das nicht funktionieren, dann meld dich nochmal.
Es k?nnte auch ?ber die GD Funktionen von PHP funktionieren, aber das w?re dann ein wenig umfangreicher(knapp 10 Zeilen mehr).
MfG Lucas -
Ich wusste es genau das die erste Antwort von dir kommt ;)
Also ich als PHP Noob mu? jetzt Fragen:
Wie schreib ich dann diesen String in eine Datei? Laut dem PHP Handbuch les ich da das diese Funktion (also file_get_contents) mir einen String zur?ckgibt.
Und URLs k?nnen nur verwendet werden wenn "fopen wrappers" erm?glicht sind. Das ist bei Lima-City allerdings nicht der Fall, weshalb man auch keine fremden PHP Scripts includen kann.
Ich hoffe das stimmt was ich da sag.
Gru? Tobi -
<?php $img_data = file_get_contents ( 'http://lucas9991.milten.lima-city.de/cycase/img/error.jpg' ); header ( 'Content-type:image/jpeg' ); echo $img_data; file_put_contents ( 'error.jpg', $img_data ); ?>
Das haut bei mir aufm localhost hin.
Es muss aber PHP 5 sein (glaube ich ^^).
Ich poste gleich mal ne M?glichkeit f?r PHP4.
MfG Lucas -
Ok das funzt leider nicht.
Fehelrmeldung:
Fatal error: Call to undefined function: file_put_contents() in /srv/www/htdocs/web760/html/forum/includes/function_bbmath.php on line 17
Lass dir was neues einfallen ;)
Gru? Tobi -
if ( !function_exists ( 'file_put_contents' ) ) { function file_put_contents($filename, $content, $flags = null, $resource_context = null) { if (is_array($content)) { $content = implode('', $content); } if (!is_scalar($content)) { user_error('file_put_contents() The 2nd parameter should be either a string or an array', E_USER_WARNING); return false; } $length = strlen($content); $mode = ($flags & FILE_APPEND) ? 'a' : 'w'; $use_inc_path = ($flags & FILE_USE_INCLUDE_PATH) ? true : false; if (($fh = @fopen($filename, $mode, $use_inc_path)) === false) { user_error('file_put_contents() failed to open stream: Permission denied', E_USER_WARNING); return false; } $bytes = 0; if (($bytes = @fwrite($fh, $content)) === false) { $errormsg = sprintf('file_put_contents() Failed to write %d bytes to %s', $length, $filename); user_error($errormsg, E_USER_WARNING); return false; } @fclose($fh); if ($bytes != $length) { $errormsg = sprintf('file_put_contents() Only %d of %d bytes written, possibly out of free disk space.', $bytes, $length); user_error($errormsg, E_USER_WARNING); return false; } return $bytes; } } // obrige Funktion kann ggf. rausgenommen werden, wenn PHP5 installiert ist // die Funktion ist von Christian Wenz $img_data = file_get_contents ( 'http://lucas9991.milten.lima-city.de/cycase/img/error.jpg' ); file_put_contents ( 'error.jpg', $img_data );
MfG Lucas
Beitrag ge?ndert am 5.12.2005 21:31 von lucas9991
Beitrag ge?ndert am 5.12.2005 21:40 von lucas9991 -
Hi
Hab das PRoblem jetzt mit der eifnachen kleinen Funktion copy() gel?st :)
Aber trotzdem vielen Dank lucas!
Gru? Tobi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage