Hallo,
ich habe Probleme mit Bild-Upload unter PHP.
Hier erst mal etwas Code
<form action="upl_image.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile">
<input type="submit">
</form>
Die Datei upl_image.php:
<?php
var_dump($_FILES);
$temp_name = $_FILES["userfile"]["tmp_name"];
print "$temp_name<br>";
print "<img src="$temp_name"><br>";
$img_size = $_FILES["userfile"]["size"];
$img_arr = getimagesize($temp_name);
print "$img_size<br>";
print "$img_arr[2]<br>";
print "$img_arr[3]<br>";
?>
Die Ausgabe sieht dann so aus:
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.
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 [...]
Also, ich kriege eine Datei, bei der getimagesize() korrekt funktioniert, aber ich kann sie weder im Browser darstellen, noch umkopieren.
Stefan