getimagesize()

tittli

Erfahrenes Mitglied
Hallo
Habe versucht, mittels getimagesize() einige Informationen über das Bild herauszugeben:
PHP:
$info = getimagesize($bilddatei_name); //Das ist Zeile 39
echo $info[0];

(das $info[0] dient nur zu Testzwecken)

Nun kommt folgenden Fehlermeldung:
Warning: getimagesize(IMG_4803.jpg) [function.getimagesize]: failed to open stream: No such file or directory in C:\apachefriends\xampp\htdocs\xampp\www\Profil\hochladen.php on line 39

Was stimmt hier nicht bzw. was bedeutet die Fehlermeldung?

danke und gruss!
 
Die Fehlermeldung besagt, dass keine Datei namens "IMG_4803.jpg" im selben Verzeichnis wo auch das Script liegt, existiert. Vielleicht hast du eine Pfadangabe vergessen, wenn das Bild in einem Unterverzeichnis liegt oder der Dateiname stimmt nicht bezogen auf Groß- und Kleinschreibung oder oder oder...
 
hmm. Das ganze soll Bestandteil eines Bilder-Uploads werden, d.h. es wird ein Bild heraufgeladen und von diesem Bild sollen dann die Informationen herausgelesen werden. Eigentlich ist das Bild also in dem Ordner.
gruss
 
Beim Upload befinden sich die hochgeladenen Dateien nicht im Verzeichnis des empfangenen Skriptes, sondern im temporären Verzeichnis des Servers. Auch der Name der Dateien ist dort nicht der selbe, wie auf dem Clientrechner.

Schau dir mal in der PHP-Doku den Abschnitt zum Dateiupload an;)
 
Hallo!
Hier der gesamte Upload-Script:
PHP:
 <?php
if ($bilddatei == "")
	{
         echo "Keine Bilddatei ausgewählt<br>";
         echo "<a href=\"profil.html\">Zurück</a>";
         die();
         }
$extlimit = "yes"; //Do you want to limit the extensions of files uploaded
$limitedext = array(".gif",".jpg",".png",".jpeg"); //Extensions you want files uploaded limited to.
$sizelimit = "yes"; //Do you want a size limit, yes or no?
$sizebytes = "10000000"; //size limit in bytes
if($senden){
if($bilddatei!= "") {
if (($sizelimit == "yes") && ($bilddatei_size > $sizebytes)) {
echo "Die Bilddateiname ist zu gross, sie darf mamimal $sizebytes bytes sein.";
}
$ext = strrchr($bilddatei_name,'.');
if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
echo "Die Bilddateiname hat nicht die richtige Endung.";
}
//Der Ordner images liegt auf dem Server, dort werde die Bilder kopiert.
//falls im images Ordner der Name der Bilddatei schon existiert, dann soll eine Fehlermeldung kommen.
elseif (file_exists("images/$bilddatei_name")) {
echo "Die Bilddateiname existiert bereit. Bitte ändere deine Bilddateiname und versuche es nochmal.";
}
//ansonsten wird die Datei im Ordner images kopiert
else{
$copy = copy($bilddatei,"images/$bilddatei_name");
} }//if($bilddatei!= "") {
}//if($senden)
//im formular muss unbedingt enctype="multipart/form-data" enthalten!
if (isset($copy))
	{
         echo "Die Datei wurde erfolgreich heraufgeladen!<br>";
         echo "<a href=\"profil.html\">Zurück</a>";
         echo "<font color=\"FF0000\"><b>";
         echo $bilddatei_name;
         echo "</font></b>";
	$size = getimagesize("$bilddatei_name", &$info);
         echo $info[1];
         echo "<img src=\"images/$bilddatei_name\">";
         }
?>

Eigentlich sollte die Datei ja im Ordner sein, da getimagesize() erst nach dem copy() ausgeführt wird. Oder versehe ich da etwas falsch?
danke schon mal für die Hilfe!
gruss
 
Du kopierst die Datei in das Verzeichnis "images" ist also verständlich, warum er die Datei nicht findet, wenn er sie im gleichen Verzeichnis sucht, in dem sich das Script befindet.

Ausserdem verlässt Du Dich darauf, dass register_globals aktiviert ist. Damit wirst Du eher früher als später auf die Nase fallen.

snuu
 
Zuletzt bearbeitet:
register_globals ist aktiviert, hab gerade eben nachgeschaut!
aber klar, du hast recht, das Verzeichnis stimmte nicht. Jetzt geht es auf jeden Fall!
danke für die Hilfe!
gruss
 
Zurück