| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

22-07-2009, 17:59
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
array - fileupload - unterschiedliche namen
hallo forum,
liegt bestimmt am wetter, aber ich hab probleme mit folgendem:
möchte auf einer seite für 2 personen jeweils 2 uploads machen
<php>
<form action="" method="post" enctype="multipart/form-data" name="up">
user 1 hat id 22:
<br>BILD:<input type='file' name="bild" />
<br>VERTRAG:<input type='file' name="vertrag" />
user 2 hat id 50:
<br>BILD:<input type='file' name="bild" />
<br>VERTRAG:<input type='file' name="vertrag" />
</php>
wie kann ich die ids den entsprechenden uploads zuweisen,
um nach dem upload mit foreach in die datenbank zu speichern.
hab schon alles möglich und unmöglich ausprobiert,...
name="bild[]"
name="bild[][".$ID."]"
usw.
komme aber auf keinen grünen zweig.
wäre für jeden konstruktiven tipp dankbar.
gruss b.
__________________
|

22-07-2009, 18:02
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Formularfelder mit name="name[id]" benennen - und dann mal mit print_r schauen, wie $_POST/$_FILES dann aufgebaut sind.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

22-07-2009, 21:19
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
ok, gemacht:
bild[$rs[$i][id]]
vertrag[$rs[$i][id]]
<php>
auszug aus dem array:
Array
(
[idshot] => Array
(
[name] => Array
(
[1] => testbild.jpg
[37] => dokument.pdf
)
...
</php>
wie komme ich an die $key's - sprich die id's - , um damit weiterzuarbeiten?
__________________
|

22-07-2009, 23:08
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zum Beispiel per foreach-Schleife.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

22-07-2009, 23:13
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
PHP-Code:
if (array_key_exists('submit',$_POST))
{
echo"<pre>";print_r($_FILES);echo"</pre>";
foreach ($_FILES as $file=> $value)
{
echo "frage: wie komme ich hier an die keys also id 1 und 37 ";
}
}
__________________
Geändert von bastian (22-07-2009 um 23:15 Uhr)
|

22-07-2009, 23:21
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von bastian
liegt bestimmt am wetter
|
Knallt bei euch die Sonne um die Uhrzeit immer noch, oder ist der Kopp jetzt anderweitig weich geworden ...?
PHP-Code:
foreach ($_FILES as $file=> $value)
{
echo "frage: wie komme ich hier an die keys also id 1 und 37 ";
}
Vielleicht, in dem du $file nutzt? - Immerhin sagst du mit der verwendeten Syntax explizit, dass die foreach-Schleife dir darin bitte den Key bereitstellen soll.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-07-2009, 11:13
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
tut mir leid, aber hab ein brett vor dem kopf.
ich weiss nicht wie ich an die werte, also id 1 und id 37 komme.
bitte sag vor! bin verzweifelt
PHP-Code:
foreach ($_FILES as $file=> $value) { echo $file ; }
ausgabe ist:
idshot
vertrag
__________________
Geändert von bastian (23-07-2009 um 12:09 Uhr)
|

23-07-2009, 14:05
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von bastian
ausgabe ist:
idshot
vertrag
|
Das passt vorne und hinten nicht zusammen.
Weder zu dem Array, dass deine Testausgabe (angeblich) geliefert hat, noch zu den Feldnamen, die ich dir vorgeschlagen hatte.
Wenn du also irgendwelche anderen obskuren Feldnamen mit noch mehr variablen Bestandteilen nutzen willst, dann ist natürlich auch das $_FILES-Array anders aufgebaut. Also noch mal: Schau dir seinen Aufbau an, dann solltest du wissen, wie es zu durchlaufen ist.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-07-2009, 14:47
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
Dein Vorschlag:
file mit name="name[id]":
PHP-Code:
<form action="" method="post" enctype="multipart/form-data" name="up">
user 1 hat id 1:
<br>BILD:<input type='file' name="bild[1]" />
<br>VERTRAG:<input type='file' name="vertrag[1]" />
user 2 hat id 37:
<br>BILD:<input type='file' name="bild[37]" />
<br>VERTRAG:<input type='file' name="vertrag[37]" />
mit foreach:
PHP-Code:
foreach ($_FILES as $file=> $value)
{
echo $file;
}
ergibt:
bild
vertrag
print_r($_FILES) liefert:
PHP-Code:
Array
(
[bild] => Array
(
[name] => Array
(
[1] => _img1.jpg
[37] => _img3.jpg
)
[type] => Array
(
[1] => image/jpeg
[37] => image/jpeg
)
[tmp_name] => Array
(
[1] => /tmp/phprSslGD
[37] => /tmp/phpPNayuS
)
[error] => Array
(
[1] => 0
[37] => 0
)
[size] => Array
(
[1] => 2684
[37] => 3777
)
)
[vertrag] => Array
(
[name] => Array
(
[1] => test2.jpg
[37] => testxyz.jpg
)
[type] => Array
(
[1] => image/jpeg
[37] => image/jpeg
)
[tmp_name] => Array
(
[1] => /tmp/phpJ2lr5f
[37] => /tmp/phpj9QFTu
)
[error] => Array
(
[1] => 0
[37] => 0
)
[size] => Array
(
[1] => 2743
[37] => 209510
)
)
)
__________________
|

23-07-2009, 14:53
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von bastian
mit foreach: [...] ergibt:
bild
vertrag
|
Ja, wenn sich die IDs gar nicht auf oberster Ebene des Arrays befinden, kannst du wohl kaum erwarten, sie zu sehen zu bekommen, wenn du nur die oberste Ebene durchläufst.
Zitat:
|
print_r($_FILES) liefert:
|
Na fein, damit hast du doch alles, was du brauchst.
Das kombinierst du mit deinem Wissen darüber, wie man mit mehrdimensionalen Arrays umgeht, und fertig.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-07-2009, 15:00
|
|
bastian
Registrierter Benutzer
|
|
Registriert seit: Aug 2001
Beiträge: 492
|
|
das mit dem wissen ist ja so ne' sache.
ok, werd's dennoch versuchen... auf zur 45ten runde.
erstmal danke füs antworten und deine nerven 
b.
__________________
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|