Problem mit Datei Upload

droni

Erfahrenes Mitglied
Moin,

ich habe folgendes Problem:

Ich habe eine Seite gemacht, wo ich 10 Datei Felder habe.
Wenn da einer Dateien hochladen will, will ich die erst überprüfen ob größe, Typ OK ist. Dafür habe ich eine function geschrieben. Funktioniert auch alles wunderbar. ABER ich muss ja alle 10 Dateien checken. Das wollte ich in einer Schleife machen.

PHP:
$b=1;

$type=$file[$b]_type;
$size=$file[$b]_size;
$name=$file[$b]_name;
check($type, $size, $name);

ich habe dieses ganze Schleifengetöse mal weg gelassen.
Die Files werden vom Formular mit file1 file2 usw. gekennzeichnet.
$file1_name gibt mir den Namen aus wie es auch soll. Aber wenn ich anstatt der 1 die Variable angebe, zeigt mir mein Editor auch schon farblich an, daß da was nicht stimmt. Er nimmt das _name nicht mehr mir in die Variable rein. Was muss ich machen? Habe keine Lust 10 mal die gleiche Abfrage da reinzuhämmern.

MfG
droni
 
Zuletzt bearbeitet:
Kannst du mir vielleicht erklären was zum Geier das darstellen soll

PHP:
$type=$file[$b]_type;
$size=$file[$b]_size;
$name=$file[$b]_name;

Soll $file[$b] nachher $file1 enthalten ?

Oder meintest du $file.$b."_name";

Also so wird das bestimmt nicht funktionieren weil
du Variablen und Zeichenketten mischt.
 
ja richtig....
$file[$b] soll zu $file1 werden

das soll ja in einer Schleife laufen.
Sprich in jedem durchlauf erhöhe ich $b um 1 bis ich die 10 durchläufe habe.
Damit jede Datei einmal auf ihre Richtigkeit gecheckt. wird.
 
enthält das Array $file den Inhalt $file1 ?

Oder wie kommst du auf $file[$b] ?

$b wäre in diesem Fall der Index des Feldes $file.
 
Ich hatte erst versucht die 10 file-Felder in ein Array zu packen:

Code:
<tr> 
      <td><input type="file" name="file[]"></td>
</tr>
<tr> 
      <td><input type="file" name="file[]" ></td>
      </tr>

als das nicht ging habe ich halt name="file1" name="file2".....gemacht.

Ich will halt das er bei der check funktion die Bilder einzeln prüft.
Wenn das mit ner Schleife nicht geht, muss ich wohl 10x die gleiche abfrage
reinballern...aber das will ich nicht :(
 
Doch, das habe ich schon versucht...

echo "$file0_name"; //ergibt test.txt

$b=0;
$name=$file.$b."_name";
echo "name = $name"; // ergibt name = 0_name

Da ignoriert er die Variable $file irgendwie :(
 
die Variable $file hat doch immer den Wert "file".
Sprich, du willst mittels der Schleife folgendes bekommen:
file1_name
file2_name
file3_name
usw.

Also sollte es so funktionieren:
PHP:
 $b=0;
$name="file".$b."_name";
echo "name = ".$name; // ergibt name = 0_name

Du solltest auch darauf achten, dass Du Strings und Variablen nicht vermischst!
 
Die Variable $file wird ja aus dem Formular mit einer Datei dadrin übergeben.
In meinem Beispiel die Datei test.txt.

Wenn ich mir das jetzt zusammenschraube, nimmt er ja mit Sicherheit nicht die "echte" Variable.

Aber ich sehe schon...es ist glaube ich besser, wenn ich die 10 Abfragen mache...
 
Zurück