Upload klappt nicht, wieso?

Spakkn

Mitglied
Hallo Leute. Also, mein erstes kleines Upload Script will einfach nicht funktionieren und ich hab keinen Schimmer, woran das liegen kann. Ich möchte bis zu sechs Bilder gleichzeitig hochladen. Die HTML Datei sieht so aus:

Code:
<form action="index.php?upload=1&save=1" method="post" enctype="multipart/form-data">
<table width="800" border="0" cellspacing="0" cellpadding="5" align="center">
  <tr>
    <td width="250" align="center">|bild1|</td>
    <td width="250" align="center">|bild2|</td>
    <td width="250" align="center">|bild3|</td>
  </tr>
  <tr>
    <td width="250" align="center"><input name="upl1" type="file" size="15"><br>&nbsp;<br>&nbsp;</td>
    <td width="250" align="center"><input name="upl2" type="file" size="15"><br>&nbsp;<br>&nbsp;</td>
    <td width="250" align="center"><input name="upl3" type="file" size="15"><br>&nbsp;<br>&nbsp;</td>
  </tr>
  <tr>
    <td width="250" align="center">|bild4|</td>
    <td width="250" align="center">|bild5|</td>
    <td width="250" align="center">|bild6|</td>
  </tr>
  <tr>
    <td width="250" align="center"><input name="upl4" type="file" size="15"><br>&nbsp;</td>
    <td width="250" align="center"><input name="upl5" type="file" size="15"><br>&nbsp;</td>
    <td width="250" align="center"><input name="upl6" type="file" size="15"><br>&nbsp;</td>
  </tr>
</table>
<center>&nbsp;<br><input name="imageField" type="image" src="images/speichern.gif" width="83" height="21" border="0">

Und hier der Auszug aus dem PHP Script:

PHP:
for($i=1; $i<=6; $i++) {
   
 $newb_pfad = $_REQUEST['upl'.$i];
   
 if($newb_pfad!="") {
    
  $result = mysql_query("SELECT id,viewernr FROM neue_htmltab WHERE id=$pageid");
  $row    = mysql_fetch_row($result);

  $bildid = $row[1]-1+$i;
  $bildpf_tmp = "../gross/pic".$bildid.".jpg";
  $upl_tmp = "upl".$i;

  $tempname = $_FILES[$upl_tmp]['tmp_name'];
  $name = $_FILES[$upl_tmp]['name'];

  copy("$tempname", "$bildpf_tmp");

  $zaehler++;
 }; // endif newb_pfad

}; // endfor

Es wird also geprüft, ob überhaupt eine Datei ausgewählt wurde. Wenn ja, dann copy. Allerdings liefert mir $_FILES keine Daten. Woran kann das liegen?
 
Gib mal $_FILES aus.
Am besten so:
PHP:
echo nl2br(print_r($_FILES,true));

Ich koennte mir vorstellen, dass das Problem darin liegt, dass Du zuvor in $_REQUEST nach den File-Daten schaust.
Ich bin mir nicht sicher, aber ich glaube nicht, dass diese Daten in $_REQUEST zu finden sind.
 
Wie gesagt, Dein Check ist wohl nicht richtig.
Denn in $_REQUEST steht nichts ueber die Files drin.

Hab das gerade mal probiert:
Code:
$_REQUEST: Array
 (
 [upload] => Go!
 )
 $_POST: Array
 (
 [upload] => Go!
 )
 $_FILES: Array
 (
 [uploadfile] => Array
 (
 [name] => alt.jpg
 [type] => image/jpeg
 [tmp_name] => /tmp/php9Q7sil
 [error] => 0
 [size] => 25087
 )
 
 )
 
Nein, die IF Abfrage ist in Ordnung, da geht er auch rein. Aber die $_FILES Abfrage gibt halt keinen Wert zurück, das ist mein Problem. Kann das mit SaveMode oder sonstigen Sachen zusammenhängen?
 
Laege es am SafeMode wuerde er sich melden.

Wie kann denn in z.B. $_REQUEST['upl1'] was drinstehen?
Das sind doch File-Inputs. Und diese werden nur in $_FILES uebergeben.
Und irgendwelche anderen Felder mit dem Namen hast Du ja nicht.

Probier doch mal anstelle von
PHP:
if($newb_pfad!="")
das hier
PHP:
if (!empty($_FILES['upl'.$i]['name']))
 
Ich krich Plaque. Es funktioniert. Das war mal sehr komisch. Ich lasse ja einen Zaehler mitlaufen und der hat mir auch immer korrekt die Anzahl der neu ausgewählten Dateien angezeigt.

Nun denn. Nicht nachfragen warum, sondern einfach freuen, dass es funktioniert :)

Besten Dank!
 
Zurück