Moin!
array(1) { ["userfile"]=> array(5) { ["name"]=> string(8) "test.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpIPfKVo" ["error"]=> int(0) ["size"]=> int(9535) } } /tmp/phpIPfKVo
[Symbol für nicht gefundene Grafik]
9535
2
width="400" height="210"Der Fehler ist, dass kein Bild angezeigt wird, sondern nur ein Platzhalter für einen img-Tag, der auf eine nicht vorhandene Datei verweist.
Logisch. Die hochgeladene Grafik wird in der Regel in einem temporären Verzeichnis abgelegt, welches vom Web aus nicht zugänglich ist - siehe "tmp_name", und außerdem wird diese temporäre Datei nach Ende des Skriptes gelöscht - sie existiert also dann schon nicht mehr, wenn der Browser die komplette HTML-Seite kennt und dann die Grafik nachladen will.
Füge ich ein
rename($temp_name,"userfiles/test.jpg");
ein, so erhalte ich folgende Fehlermeldung:
Warning: rename() failed (Invalid cross-device link) in [...] on line [...]
Du kannst die Datei nicht einfach umbenennen, weil ein Umbenennen im Prinzip ein Verschieben ist - und das geht offenbar nicht so einfach.
Benutze die Funktion move_uploaded_file() und guck dir bei http://www.php.net mal die Beispiele und Userbeiträge an - da ist eigentlich ausreichend demonstriert, wie es geht.
- Sven Rautenberg
Signatur oder nicht Signatur - das ist hier die Frage!