Bildupload funktioniert nicht
fritz85
- php
Hallo zusammen,
ich versuche gerade ein Bildupload Skript zum funktionieren zu bringen :D
Jedoch ohne Erfolg - ich seh den Fehler vor lauter Bäume nicht mehr..!
Könnt Ihr mir helfen?
So sehen meine Inputfelder aus:
<input type="file" name="bild1">
<input type="file" name="bild2">
<input type="file" name="bild3">
<input type="file" name="bild4">
$uploaddir="profile/".$username."/";
$files[] = $_FILES;
foreach ($files as $datei)
{
$count = count($_FILES)+1;
for($i=1;$i<=count($_FILES);$i++)
{
$var = "pic".$i;
if($_FILES[$var]['error'] == 0)
{
if($_FILES[$var]['type'] != 'image/gif' && $_FILES[$var]['type'] != 'image/jpeg')
{
echo "Fehler! Keine Bilddatei(".$_FILES[$var]['type'].")! Bitte kontaktieren Sie den Administrator!";
exit();
}
if(!move_uploaded_file($_FILES[$var]['tmp_name'], $uploaddir . $_FILES[$var]['name']))
{
echo "<b>fehler</b>";
exit;
}
}
}
}
Ich bin echt am verzweifeln!!!
im PHP Info ist Fileupload auf: ON!
Gruss
fritz
Könnt Ihr mir helfen?
"funktioniert nicht" bringt doch sicher eine fehlermeldung, vielleicht kann die ja helfen?
Könnt Ihr mir helfen?
"funktioniert nicht" bringt doch sicher eine fehlermeldung, vielleicht kann die ja helfen?
Ich bekomme keine Fehlermeldung das ist es ja !
Ich bekomme keine Fehlermeldung das ist es ja !
error-reporting eingeschaltet?
Ich bekomme keine Fehlermeldung das ist es ja !
error-reporting eingeschaltet?
Jap Error Reporting ist eingeschaltet E_ALL
bringt keine Fehlermeldung
@Gunther: Die Felder hab ich angepasst jedoch noch immer das gleiche ?!
Ich bekomme keine Fehlermeldung das ist es ja !
error-reporting eingeschaltet?Jap Error Reporting ist eingeschaltet E_ALL
Was sagt denn $_FILES['name']['error']?
Siehe: http://de2.php.net/manual/de/features.file-upload.errors.php
Gruß Gunther
Hi Gunther
Was sagt denn $_FILES['name']['error']?
Siehe: http://de2.php.net/manual/de/features.file-upload.errors.php
Hab ich schon angeschaut bringt mir keine Fehlermeldung gar nix
$var = "pic".$i;
Deine Inputfelder heißen aber bild! ;-)
Gruß Gunther
echo $begrüßung;
ich versuche gerade ein Bildupload Skript zum funktionieren zu bringen :D
Jedoch ohne Erfolg - ich seh den Fehler vor lauter Bäume nicht mehr..!
Könnt Ihr mir helfen?
Kontrollausgaben mit echo, var_dump() und print_r() können helfen. Bei komplexen Strukturen empfiehlt sich, vorher ein <pre> auszugeben.
Weiterhin wäre eine aussagekräftigere Problembeschreibung als "ohne Erfolg" nützlich. Was genau erwartest du, was passiert stattdessen?
$files[] = $_FILES;
Was soll denn der Unsinn? Du kopierst ein Array in ein Element des Arrays $files.
foreach ($files as $datei)
Dieses Array mit dem einen Element drin durchläufst du.
$count = count($_FILES)+1;
for($i=1;$i<=count($_FILES);$i++)
Wofür ist denn dieses Konstrukt gut?
im PHP Info ist Fileupload auf: ON!
Gibt es nicht. Meinst du stattdessen file_uploads? Bitte beobachte und beschreibe genauer.
echo "$verabschiedung $name";
Hallo
Kontrollausgaben mit echo, var_dump() und print_r() können helfen. Bei komplexen Strukturen empfiehlt sich, vorher ein <pre> auszugeben.
Leider nicht - hab ich gemacht erhalte aber eine Leere ausgabe.
Wofür ist denn dieses Konstrukt gut?
Ich habe 4 Uploadfelder, die sollen mit "bild1, bild2, bild3, bild4) beschriftet werden.
im PHP Info ist Fileupload auf: ON!
Jap mein Fehler sorry.
echo $begrüßung;
Kontrollausgaben mit echo, var_dump() und print_r() können helfen. Bei komplexen Strukturen empfiehlt sich, vorher ein <pre> auszugeben.
Leider nicht - hab ich gemacht erhalte aber eine Leere ausgabe.
Verwende var_dump(), das erzeugt keine leeren Ausgaben. Man kann damit immer den Typ einer Variablen (oder eines Ausdrucksergebnisses) erkennen. false oder null erzeugen mit echo ausgegeben keine Ausgabe. Mit var_dump() hingegen kann man anhand des Typs weitere Vermutungen zur Ursache anstellen, die man dann mit weiteren Tests kontrollieren kann.
Wofür ist denn dieses Konstrukt gut?
Ich habe 4 Uploadfelder, die sollen mit "bild1, bild2, bild3, bild4) beschriftet werden.
Ja, und? Warum weist du $count einen Wert zu, noch dazu in einer Schleife immer wieder den gleichen, verwendest diese Variable aber gar nicht?
echo "$verabschiedung $name";
Hi,
Verwende var_dump(), das erzeugt keine leeren Ausgaben. Man kann damit immer den Typ einer Variablen (oder eines Ausdrucksergebnisses) erkennen. false oder null erzeugen mit echo ausgegeben keine Ausgabe. Mit var_dump() hingegen kann man anhand des Typs weitere Vermutungen zur Ursache anstellen, die man dann mit weiteren Tests kontrollieren kann.
var_dump($_FILES['bild1']['name']); = NULL
var_dump($_FILES); = 0
echo $begrüßung;
var_dump($_FILES['bild1']['name']); = NULL
Das kann bedeuten, dass dieses Array-Element nicht existiert. Du sagtest, du hast das error_reporting auf E_ALL stehen? display_errors ist auch an? Fehlermeldungen verstecken sich auch nicht in der HTML-Quelltext-Ansicht?
var_dump($_FILES); = 0
Das kann nicht sein. $_FILES ist normalerweise ein Array. Dessen Ausgabe erzeugt mit var_dump nicht nur eine 0. Wenn irgendwer $_FILES eine 0 zugewiesen hätte, dann bekämst du bei richtiger error_reporting-Konfiguration jede Menge Notice-Meldungen beim Zugriff auf Array-Elemente.
echo "$verabschiedung $name";
Hallo,
$files[] = $_FILES;
1. Wieso steckst du ein vorhandenes Array in ein Array?!
2. Was gibt print_r($_FILES) aus?
3. Welche PHP-Version?
4. Sind register_globals on oder off?
Lies Dir das mal durch: Steuerung von Dateiuploads
MfG
cross
Hallo
- Wieso steckst du ein vorhandenes Array in ein Array?!
- Was gibt print_r($_FILES) aus?
- Welche PHP-Version?
- Sind register_globals on oder off?
1.) Wurde geändert
2.) Gibt nichts aus
3.) 5.1
4.) sind auf On
Gruss
- Was gibt print_r($_FILES) aus?
2.) Gibt nichts aus
Aha - überprüfe Dein Formular, mit dem Du die dateien hochlädst. Das Array $_FILES ist offensichtlich leer. Fülle es zunächt einmal und dann siehst Du weiter.
MfG cross
Jap aber jedoch hole ich ja ein File, aber irgendwie kommts nicht mit?
Aha - überprüfe Dein Formular, mit dem Du die dateien hochlädst. Das Array $_FILES ist offensichtlich leer. Fülle es zunächt einmal und dann siehst Du weiter.
MfG cross
Jap aber jedoch hole ich ja ein File, aber irgendwie kommts nicht mit?
So kommen wir nicht weiter! Schick mal die Passage Deines Quelltextes, in dem das Formular für den Bilderupload drin ist.
So kommen wir nicht weiter! Schick mal die Passage Deines Quelltextes, in dem das Formular für den Bilderupload drin ist.
Hmm was möchtest Du genau?`
Also das wäre das was ich habe:
<form action="profil_save.php" method="post">
<input type="file" name="bild1" />
<input type="file" name="bild2" />
<input type="file" name="bild3" />
<input type="file" name="bild4" />
</form>
$uploaddir="profile/".$username."/";
foreach ($_FILES as $datei)
{
$count = count($_FILES)+1;
for($i=1;$i<=count($_FILES);$i++)
{
$var = "bild".$i;
if($_FILES[$var]['error'] == 0)
{
if($_FILES[$var]['type'] != 'image/gif' && $_FILES[$var]['type'] != 'image/jpeg')
{
echo "Fehler! Keine Bilddatei(".$_FILES[$var]['type'].")! Bitte kontaktieren Sie den Administrator!";
exit();
}
if(!copy($_FILES[$var]['tmp_name'], $uploaddir . $_FILES[$var]['name']))
{
echo "<b>fehler</b>";
exit;
}
}
}
}
Also das wäre das was ich habe:
<form action="profil_save.php" method="post">
<input type="file" name="bild1" />
<input type="file" name="bild2" />
<input type="file" name="bild3" />
<input type="file" name="bild4" />
</form>
Da fehlt ein enctype="multipart/form-data". Wenn Du das nicht hast, kannst Du bis zum Sant-Nimmerleinstag auf Dateien warten.
Gruß
cross
Hi,
Da fehlt ein enctype="multipart/form-data". Wenn Du das nicht hast, kannst Du bis zum Sant-Nimmerleinstag auf Dateien warten.
Ja jetzt sieht es schon anders aus. Jetzt erhalte ich mal ne Fehlermeldung:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10028 is not allowed to access / owned by uid 0 in XXX on line 972
?!
Hi,
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10028 is not allowed to access / owned by uid 0 in XXX on line 972
?!
Was der Safe Mode ist, darueber informierst du dich bitte *jetzt* selber.
Und dann ueberpruefst du noch mal deine Variableninhalte (Kontrollausgaben) - sieht ja so aus, als wollte move_uploaded_file die Datei direkt ins Rootverzeichnis / kopieren, was mit Webserver-Rechten wohl in den seltensten Faellen erlaubt sein duerfte.
MfG ChrisB