dateiupload per php will nicht so recht...???
daniel haller
- php
hallo formuler,
ich habe mit php die möglichkeit per formular ein bild hochzuladen.
das klappt alles wunderbar.
Probleme habe ich mit dem nachträglichen ändern des bildes..
wenn das dateifeld in dem formular leer ist,
wird es ignoriert, andernfalls soll das bild hochgeldaen werden und dessen dateiname wird in eine DB geschrieben.
nun bekomme ich eine komische fehlermeldung:
Warning: getimagesize: Unable to open '' for reading. in /is/htdocs/29799/www.baseball-cheerleading.de/Sites/admin/admin_steckbriefe/steckbrief_update.php on line 32
in php sieht das so aus:
$size=getimagesize($bild);
if ($size[2]==1 || $size[2]==2) { //ÜPERPRÜFEN DES BILDES UAF GIF-JPG
if($size[0]<=250 && $size[1]<=250 && $bild_size <=25600) { //ÜBERPRÜFEN AUF FILE- UND BILDGROESSE
$copy_success=copy ($bild,"../../dvc_united/steckbrief_bilder/".$bild_name); //FALLS ALLE PARAMETER STIMMEN WIRD BILD KOPIERT
$query = ("INSERT INTO steckbriefe (vorname,nachname,teamnummer,geburtstag,sternzeichen,mitglied_seit,email,bild)
VALUES ('$vorname','$nachname',$teamnummer,'$geburtstag','$sternzeichen','$mitglied_seit','$email','$bild_name');");
$insert=mysql_query($query); //UND DATENSATZ WIRD GESCHRIEBEN
}
}
if(!$copy_success) { $insert=0; }
wenn ich mit mit echo mal ansehe, welchen wert $bild hat, bekomme ich bspw. folgendes: E:\TEST\earth2.jpg
wiso soll dieses bild nicht gelesen werden können?
bis auf das query sind ist der code fast identisch mit dem für das erstellen, d.h. der neuanlage eines steckbriefs (geht dabei darum , das steckbriefe erstellt werden können...)
und da geht das wunderbar mit getimagesize??
das dateifeld im fomular heißt übrigens "bild".
gibt es irgendwas , was ich übersehen habe ??
chmod ist in dem verzeichnis auch gesetzt... auch wenn er im code ja gar nicht erst bis dahin kommt...??
könnt ihr mir weiterhelfen??
vielen dank im voraus,
grüße daniel
Moin!
Probleme habe ich mit dem nachträglichen ändern des bildes..
wenn das dateifeld in dem formular leer ist,
wird es ignoriert, andernfalls soll das bild hochgeldaen werden und dessen dateiname wird in eine DB geschrieben.
nun bekomme ich eine komische fehlermeldung:
Warning: getimagesize: Unable to open '' for reading. in /is/htdocs/29799/www.baseball-cheerleading.de/Sites/admin/admin_steckbriefe/steckbrief_update.php on line 32
Die Fehlermeldung deutet darauf hin, daß das Script auf einem Unix-Server läuft - vermutlich auf deinem Webspace. Deshalb kann die Angabe
wenn ich mit mit echo mal ansehe, welchen wert $bild hat, bekomme ich bspw. folgendes: E:\TEST\earth2.jpg
wiso soll dieses bild nicht gelesen werden können?
natürlich nicht stimmen, denn Unix kennt keinen Laufwerksbuchstaben "E:" (es kennt überhaupt keine Laufwerksbuchstaben!), und es kennt auch keine Backslashes zur Trennung der Verzeichnisse.
Summa summarum: Du greifst hier vermutlich auf den falschen Dateinamen zu. Üblicherweise benötigst du den Namen der temporären hochgeladenen Datei, um diese dann an die gewünschte Stelle zu kopieren/bewegen und ihr einen ordentlichen Namen zu geben.
Lies einfach nochmal die Doku zu Dateiuploads mit PHP, und welche Informationen in welchen Variablen drinstehen. Nutze dazu vielleicht auch einfach die Funktion php_info(INFO_VARIABLES); um dir die vom Formular gesendetet Daten ausgeben zu lassen. Die Dateiuploads landen in einem gesonderten Hash $HTTP_POST_FILES, und nicht in $HTTP_POST_VARS. Ich würde im Zweifel lieber auf dieses Hash zugreifen, oder noch besser auf $_FILES (schau, ob dein PHP diese neue Variable schon kann (ab Version 4.1 wurde sie zusätzlich eingeführt, irgendwann bei Version 5 wird die alte Variable nicht mehr funktionieren!)).
http://www.php.net/manual/de/features.file-upload.php
- Sven Rautenberg