#1 7. Februar 2007 Imageupload per URL Hey ich versuch gerade ein Image-Hoster-Script á la imageshack.us zu coden.. Das Uploaden vom PC aus funktioniert 100%ig nur per URL gibts probleme :angry: Hier mal der Quellcode-Auszug: PHP: if ( $art == 'URL' ) { echo $_POST [ 'URL' ]; if( $data = file_get_contents ( $_POST [ 'URL' ])) { if( get_magic_quotes_runtime ()) $data = stripslashes ( $data ); $fh = fopen ( "bilder/zieldatei.ext" , "w" ); fputs ( $fh , $data ); fclose ( $fh ); } } Folgende Fehler kommen: Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. Warning: file_get_contents(http://www.culture.gr/2/21/211/21107a/00/lk07a022.jpg) [function.file-get-contents]: failed to open stream Ich hoffe ihr könnt mir helfen...(bewertung ist klar) MfG KlausTrofobie + Multi-Zitat Zitieren
#2 7. Februar 2007 AW: Imageupload per URL du solltest vllt. lieber die funktion fsockopen verwenden denke ich mal PHP: if ( $art == 'URL' ) { echo $_POST [ 'URL' ]; if( $stream = fsockopen ( $_POST [ 'URL' ], 80 )) { fputs ( $stream , "GET / HTTP/1.0\r\n\r\n" ); $data = '' ; while (! feof ( $stream )) { $data .= fgets ( $stream , 128 ); } fclose ( $stream ); if( get_magic_quotes_runtime ()) $data = stripslashes ( $data ); $fh = fopen ( "bilder/zieldatei.ext" , "w" ); fputs ( $fh , $data ); fclose ( $fh ); } } + Multi-Zitat Zitieren
#3 7. Februar 2007 AW: Imageupload per URL danke Schmitz jetzt kommt der fehler: Warning: fsockopen() [function.fsockopen]: unable to connect to http://unadorned.org/pebble/huh.jpg:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) ich weiß nicht wo ich das aktivieren kann vll kannste mir ja helfen (hab xampp bei mir laufen) MfG KlausTrofobie + Multi-Zitat Zitieren
#4 7. Februar 2007 AW: Imageupload per URL file_get_contents() gibt dir Fehler, weil die PHP-interne Hostauflösung den gegebenen Host ( ) nicht auf eine IP-Adresse auflösen kann. Eine weitere Fehlerquelle kann die Einstellung "allow_url_fopen" sein. + Multi-Zitat Zitieren
#5 8. Februar 2007 AW: Imageupload per URL die einstellung allow_url_fopen ist auf on (also richtig) Der sagt mir ja irgendwas mit fsockopen(), aber dafür find ich keine einstellung... Hat vll jemand ne andere Möglichkeit so ein Upload-Script zu realisieren? MfG KlausTrofobie + Multi-Zitat Zitieren
#6 8. Februar 2007 AW: Imageupload per URL so sieht mein images upload script aus, ganz einfach aber funktioniert ( bei mir jedenfalls =) ) PHP: <? php // Einstellungen $url = "http://www.img-host.de" ; //Domain $maxsize = "1048576" ; // Maximale Uploadgrösse (1 MB) $uploddir = "upp/" ; // Upload Ordner $extensions = array( ".jpg" , ".gif" , "bmp" , "jpeg" ); // Erlaubte Erweiterungen if( $_POST [ 'action' ]== "upload" ) { $tmp_name = $HTTP_POST_FILES [ 'bild' ][ 'tmp_name' ]; // Der Originalname $name = $HTTP_POST_FILES [ 'bild' ][ 'name' ]; // Der Originalname $size = $HTTP_POST_FILES [ 'bild' ][ 'size' ]; // Größe der Datei $type = $HTTP_POST_FILES [ 'bild' ][ 'type' ]; // Der MIME Type der Datei $ext_tmp = explode ( "." , $name ); $ext = "." . $ext_tmp [( count ( $ext_tmp )- 1 )]; if( in_array ( $ext , $extensions )) { if( $size <= $maxsize && $size != 0 ) { while( file_exists ( $uploddir . $newname ) || ! $newname ) { $newname = md5 ( uniqid ( rand ())); } if( move_uploaded_file ( $tmp_name , $uploddir . $newname . $ext )) { $img_eintrag = "INSERT INTO img (size, name, type, url) VALUES (" . $size . ", " . $newname . $ext . ", " . $type . ", " .. ")" ; echo "Die Datei erfolgreich hochgeladen.<br>" ; echo "Größe: " . $size . " Byte<br>" ; echo "Name: " . $name . "<br>" ; echo "MIME-Type: " . $type . "<br>" ; echo "Ansehen: <a href='" . $uploddir . $newname . $ext . "'>" . $url . $uploddir . $newname . $ext . "</a>" ; } else{echo "Fehler: Deitei konnte nicht verschoben werden!" ;} } else { echo "Ihre Datei ( $size ) ist über $maxsize Bytes oder gleich 0 KB" ; } } else { echo "Falsche Erweiterung: " . $name ; } } else { echo "<form action='" . $_SERVER [ 'PHP_SELF' ]. "' enctype=\"multipart/form-data\" method='post'>" ; echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxsize . "\">" ; echo "<input type='hidden' name='action' value='upload'>" ; echo "<table>" ; echo "<tr>" ; echo "<td>Datei</td><td><input type='file' name='bild'></td>" ; echo "</tr><tr>" ; echo "<td> </td><td><input type='submit' value='Hochladen'></td>" ; echo "</tr>" ; echo "</form>" ; echo "</table>" ; } ?> + Multi-Zitat Zitieren
#7 8. Februar 2007 AW: Imageupload per URL Ja soweit war ich auch schon Mutator.... nur das Problem ist dass man dann das Bild auf seinem PC haben muss. Wenn ich aber von ner URL das hochladen will, dann geht das nicht... wer nicht verstanden hat kann mal bei ImageShack - Best place for all of your image hosting and image sharing needs gucken. Da kann man ja auch wählen ob file oder url möchte. Genau das will ich auch. Bewertung haste trotzdem schon MfG KlausTrofobie + Multi-Zitat Zitieren
#8 8. Februar 2007 AW: Imageupload per URL Falls du die Erweiterung cURL hast, kannst du auch die benutzen. cURL ist extra für solche Sachen gemacht. PHP: <? php $ch = curl_init ( "http://www.example.com/image.jpg" ); $fp = fopen ( "image.jpeg" , "w" ); // Optionen setzen curl_setopt ( $ch , CURLOPT_FILE , $fp ); curl_setopt ( $ch , CURLOPT_HEADER , 0 ); // Ausführen der Aktion curl_exec ( $ch ); // Session beenden curl_close ( $ch ); fclose ( $fp ); ?> Beispiel von php.net. + Multi-Zitat Zitieren