Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu $_FILES
Kangarooo 07-01-2010, 10:13 Hallo!
Ich lese über eine foreach Schleife Dateinamen aus, welche hochgeladen werden soll!
foreach($_FILES as $file)
{
if($file['name']!="")
{
$bildpfad = $uploaddir."".$file['name'];
}
}
Ist es möglich, auch den Feldnamen auszuegebn, aus welchem der aktuelle Pfad ausgelsen wird? also sowas wie: $file[Feldname] ??
Ich verstehe nicht ganz, was du auslesen willst? Den Feldnamen des Input-File-Feldes? Falls nein: Was meinst du mit "aus welchem der aktuelle Pfad ausgegeben wird"?
Kangarooo 07-01-2010, 10:24 Ja, den Namen des Input-File-Feldes.
ALso ich lese ja aus allen Feldern, welche den Typ "File" haben, den Pfad aus, welchen ich durch den Button "Durchsuchen" angegeben habe, aus.
Ich habe da 10 Felder, und mann kann auch noch nach belieben ein Feld hinzufügen.
Das 1. Feld hat den Namen Preistabelle.
Die anderen Felder haben den Namen Image1......bis ImageX.
Kein Feld ist aber ein Pflichtfeld.
Somit muss ich erstmal überprüfen, ob überhaupt ein Pfad drin steht.
Falls das Feld Preistabelle einen Pfad entählt, soll in die DB was anderes gespeichert werden, als wenn das Feld ImageX einen Link entählt.
Deswegen hätte ich gerne eine Überprüfung, aus welchem Feld ich gerade den Pfad auslese!
<input type="file" name="Image[0]">
<input type="file" name="Image[1]">
<input type="file" name="Image[2]">
<input type="file" name="Image[hinten]">
<input type="file" name="Image[vorn]">
<input type="file" name="Image[oben]">
Kangarooo 07-01-2010, 11:14 Ne, mit der Namesvergabe habe ich ja keine Probleme! Das geschieht automatisch mit einer javascript funktion! mir geht es wirklich nur darum, den Feldnamen zu bekommen, aus welchen gerade mit $file[name] der pfad ausgelesen wird.
Es wird kein Pfad aus irgendeinem Feld ausgelesen, sondern du bekommst lediglich den Pfad der Datei in die PHP die hochgeladene Datei gepackt hat! Wie du an den Namen des Feldes kommst, wirst du herausfinden, wenn du dir das $_FILES-Array ausgeben lässt und die Struktur untersuchst!
streuner 07-01-2010, 11:36 ...den Feldnamen zu bekommen, aus welchen gerade mit $file[name] der pfad ausgelesen wird.
Verstehe ich nicht, aber wenn die Feldnamen alle von Image1 bis ImageX gehen, kannst du die doch über ne einfache Schleife abfragen! Wenn Du die dynamisch erstellst, kannst Du z.B. mit
if (document.Form.Name != null) {
... Anweisung ...
}
nach dem abschicken des Formulars prüfen, ob das Feld vorhanden ist,
oder was meinst du?
mfg streuner
Kangarooo 07-01-2010, 11:38 Naja, aber die ganzen pfade bekommt er doch aus den input feldern!?
wie soll ich mir denn dass $_FILES array ausgeben lassen wenn sich daran nicht die feldnamen befinden?
Ne, mit der Namesvergabe habe ich ja keine Probleme!
Doch, hast du:
Die anderen Felder haben den Namen Image1......bis ImageX.
Wann immer du beginnst, in einem Bezeichner selbst eine „Nummerierung” einzuführen, hast du ein Problem.
Arrays sind in 99,999% der Fälle der bessere Weg.
Kangarooo 07-01-2010, 11:48 Verstehe ich nicht, ....
Also:
<input type="file" name="preistabelle" value="" id="preistabelle" />
<input type="file" name="image1" value="" id="image1" />
<input type="file" name="image2" value="" id="image2" />
So, dann lese ich über die foreach Schleife JEDES file-feld aus.
foreach($_FILES as $file)
{
if($file['name']!="")
{
$bildpfad = $uploaddir."".$file['name'];
$insertpic="INSERT INTO pictures (pic, beschreibung) VALUES ( $bildpfad, "Landschaft")
}
}
So, wenn aber das Feld "Preistabelle" ausgelesen wird, soll in eine andere Datenbank geschrieben werden.
Naja, aber die ganzen pfade bekommt er doch aus den input feldern!?
Nein!
Einzig den Dateinamen und der File_Type kommt vom Browser.
wie soll ich mir denn dass $_FILES array ausgeben lassen wenn sich daran nicht die feldnamen befinden?
Die Feldamen werden im $_FILES Array als Key verwendet.
Sind also drin.
Kangarooo 07-01-2010, 11:51 @combie
Ahhh...sehr gut!!! Und wie lese ich dann dass $_Files Array dann aus um an die feldnamen zu kommen?? Wenn du mir dass noch als COde schreibn könntest wäre ich erstmal glücklcih! :-)
Weil dann könnte ich dann sagen:
if ($_Files[feldname]=="preistabelle")
{
andere aktion!
}
foreach($a as $key=>$value)
{
if($key=="wert")
{
}
}
Kangarooo 07-01-2010, 13:46 Geht dass denn so???
foreach($_FILES as $key=>$file)
{
if($file['name']!="")
{
if($key=="0")
{
.....
Irgendwie nämlcih nciht!
Quetschi 07-01-2010, 13:58 In $key steht der Name deines Input-Feldes, also z.B. "preistabelle" oder "image1" usw...
Den Rest bekommst mit der Info dann wohl gebacken!;)
Kangarooo 07-01-2010, 14:46 AHHHHHH!!! SUPER!!!! VIELEN DANK FÜR EURE HILFEEE JETZT FUNKTIONIERT ES!!!!!! :danke::danke::danke::danke::danke::danke:
|
|