Hi,
ich möchte gerne mit einem Skript Bilder per URL hochladen, also so wie im phpBB3.
Dort gibt man den Link ein, und das läd dann das Bild auf den Server und bindet den als Avatar ein.
Wie geht den sowas? Google hat mich nicht weiter gebracht ?(
Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!
Zu der Infoseite von „Die Mo-Mo-Manie“Hi,
ich möchte gerne mit einem Skript Bilder per URL hochladen, also so wie im phpBB3.
Dort gibt man den Link ein, und das läd dann das Bild auf den Server und bindet den als Avatar ein.
Wie geht den sowas? Google hat mich nicht weiter gebracht ?(
Je nach der Server-Config kann das mehr oder weniger kompliziert werden.
Wenn allow_url_fopen aktiviert ist, kannst du mit der PHP-Funktionen einfach die Datei wie eine lokale auf dem Webserver liegende Datei behandeln. Also mit fopen() öffnen und als Pfad eben die URL übergeben.
Ist allow_url_fopen deaktiviert, musst du ne eigene Funktion schreiben, die die Datei mit einem HTTP Request und per fsockopen anfordert. Ist beides deaktiviert, was bei freehostern häufig der Fall ist, geht das meines wissens nach nicht.
Puh! allow_url_fopen ist aktiviert. Laut phpinfo()
Ich werde mal versuchen das zu schreiben^^
Vl. schaff ich das auch ^^" Wenn nicht werde ich mich melden :D
Sry für Doppelpost.
Wie ich schon befürchtet hab, geht das Skript nicht^^
Hier hab ich das mal:
<?php
$filename = "http://arkanisterndu.ilohost.com/pokemon/style.css";
$handle2 = fopen($filename, "r");
$size =filesize($filename);
$content = fread($handle2, $size);
fclose($handle2);
$filename2 = "style.txt";
$handle = fopen($filename2, "a");
fwrite($handle2, $content);
?>
Alles anzeigen
Das Skript läuft auf XAMPP und es will style.css von meinem Webspace herholen.
Folgende Fehlermeldungen:
Warning: filesize() [function.filesize]: stat failed for http://arkanisterndu.ilohost.com/pokemon/style.css in C:\xampp\htdocs\acp\info.php on line 5
Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\xampp\htdocs\acp\info.php on line 6
was kann ich tun?
Auf Remote-Files kann man leider nicht die ganzen Fileinfo-Functionen anwenden. Hier musst du mit ner Schleife und feof() arbeiten:
<?php
$remoteFileName = 'http://arkanisterndu.ilohost.com/pokemon/style.css';
$remoteFile = fopen($remoteFileName, 'r');
$localFileName = 'style.css';
$localFile = fopen($localFileName, 'a');
while (!feof($remoteFile)) {
$buffer = fgets($remoteFile, 4096);
fwrite($localFile, $buffer);
}
fclose($remoteFile);
fclose($localFile);
?>
Alles anzeigen
Getestet und funktioniert einwandfrei. Nur das Errorhandling fehlt halt noch.
P.S.: Für so eine Aufgabe bietet sich das Schreiben einer passenden Klasse an.
Wie schreibt man den eine Klasse?^^
Ich weiß zwar von Java her was das ist, aber in PHP hab ich mich nicht wirklich mit dem beschäftigt^^
Und THX!
Bestes Tutorial ever dafür: http://peterkropff.de/site/php/oop.htm
Bestes Tutorial ever dafür: http://peterkropff.de/site/php/oop.htm
Cool, danke!
Ich hab schon wieder ein neues Problem^^
Also das hier:
<?php/** * @author kiro * @copyright 2009 */require('db.php');$meth = $_POST[meth];$error = "";$name = $_POST[name];$level = $_POST[level];$attacke = $_POST[attacke];$von = $_POST[von];$zu = $_POST[zu];;if($meth == "datei"){ $target_path = "uploads/"; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { $bild = basename( $_FILES['uploadedfile']['name']); $sql = "INSERT INTO digimon.digimon_liste(ID, Name, Level, digitiert_zu, digitiert_von, Attacke, Bild) VALUES(NULL, '$name', '$level', '$von', '$zu', '$attacke', '$bild')"; $query = mysql_query($sql); if(!$query) { $error .= "Es unterlief ein Fehler!: " . mysql_error() . "<br>"; } } else { $error .= "Beim hochladen trat ein Fehler auf!!<br>"; }}echo $error;?>
Also ich bekomm diese Fehlermeldung:
INSERT command denied to user ''@'localhost' for table 'digimon_liste'
und die db.php sieht so aus:
<?php
/**
* @author Kiro
* @copyright 2009
*/
$host = "localhost";
$benutzerb = "root";
$pwb = "";
$db = "digimon";
$con = mysql_connect($host, $benutzerb, $pwb);
mysql_select_db($db,$con);
?>
Alles anzeigen
Ich check nicht warum das nicht geht ;(
Für deinen Mysql Benutzer wurde der INSERT Befehl gesperrt...
Aber bei einem anderen Skript funktioniert der INSERT Befehl. ?(
Hab ich zuerst auch gehabt.
Dann kommt da diese Meldung:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\digimon\acp\src\digi_hinzu\step3.inc.php on line 28
Was sucht das Semikolon in Zeile 17 eigentlich?
oh, hab ich vergessen rauszulöschen...
Ich hab noch ne Frage...
Wie kann ich da bestimmen in welchen Ordner das hoch soll?
$target_path = "uploads/";
einfahc anpassen
Ne ich meinte nicht das, sonder das
<?php
$remoteFileName = 'http://arkanisterndu.ilohost.com/pokemon/style.css';
$remoteFile = fopen($remoteFileName, 'r');
$localFileName = 'style.css';
$localFile = fopen($localFileName, 'a');
while (!feof($remoteFile)) {
$buffer = fgets($remoteFile, 4096);
fwrite($localFile, $buffer);
}
fclose($remoteFile);
fclose($localFile);
?>
}
Alles anzeigen
sry, ich bin heute anscheinend etwas verwirrt, und drücke mich ein wenig unklar aus :S
fwrite($localFile, $buffer);
-> fwrite('ORDNER/'.$localFile, $buffer);
I-wie geht das nicht...
fwrite(): supplied argument is not a valid stream resource
Ich hab auch schon versucht das beim $localfile einzuügen