Toon posts:

[php] Probleem met superglobal $_FILES

Pagina: 1
Acties:

Verwijderd

Topicstarter
Nadat je met een formulier files hebt geupload kan/moet je de files aanroepen met $_FILES. Dit werkt allemaal perfect, alleen kwam ik een probleem tegen en dat is het volgende: :)

Als je een array gebruikt als naam van de "file-input-field" in het formulier, bijvoorbeeld:

code:
1
2
3
4
5
<form method="post" enctype="multipart/form-data">
    <input type="file" name="File[een][twee][]"><br>
    <input type="file" name="File[een][twee][]"><br>
    <input type="submit" value="gaanmetdiebanaan">
</form>


en het formulier met bestand submit dan zal $_FILES er zo uitzien

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Array
(
    [File] => Array
        (
            [name] => Array
                (
                    [een] => Array
                        (
                            [twee] => Array
                                (
                                    [0] => empty.gif
                                    [1] => header.gif
                                )

                        )

                )

            [type] => Array
                (
                    [een] => Array
                        (
                            [twee] => Array
                                (
                                    [0] => image/gif
                                    [1] => image/gif
                                )

                        )

                )

            [tmp_name] => Array
                (
                    [een] => Array
                        (
                            [twee] => Array
                                (
                                    [0] => /tmp/phpuploads/php2ocF9K
                                    [1] => /tmp/phpuploads/phpmUbo1l
                                )

                        )

                )

            [error] => Array
                (
                    [een] => Array
                        (
                            [twee] => Array
                                (
                                    [0] => 0
                                    [1] => 0
                                )

                        )

                )

            [size] => Array
                (
                    [een] => Array
                        (
                            [twee] => Array
                                (
                                    [0] => 43
                                    [1] => 5128
                                )

                        )

                )

        )

)


:? :? :?

Dit vind ik persoonlijk onlogisch, logischer was volgens mij geweest:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Array
(
    [File] => Array
        (
            [een] => Array
                (
                    [twee] => Array
                        (
                            [0] => Array
                                (
                                    [name] => empty.gif
                                    [type] => image/gif
                                    [tmp_name] => /tmp/phpuploads/php2ocF9K
                                    [error] => 0
                                    [size] => 43
                                )
                            [1] => Array
                                (
                                    [name] => header.gif
                                    [type] => image/gif
                                    [tmp_name] => /tmp/phpuploads/phpmUbo1l
                                    [error] => 0
                                    [size] => 5128
                                )
                                
                        )
                        
                )
                
        )

)


Zodat je met een vrij eenvoudige recursieve functie door de array heen kan gaan.
Weet iemand een oplossing om de bestandsgegevens uit $_FILES te halen, onafhankelijk van de dimensie van de array? :)

Verwijderd

nee het gaat zo

1 ... eerst de filenames
2 ... dan de types ofzo... etc
3. dan etc etc etc

dus een array per onderdeel...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

xtentic :? :?

sheeponfire
Ik denk dat als je een dergelijke array wilt fabriceren, je 't gewoon zelf zal moeten doen. Let daarbij op de heerlijke eigenschap dat de structuur van elke array ( tmp_name, size, etc.) exact hetzelfde is :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
xtentic:
Uhm ja dat zeg ik toch? :?

bijvoorbeeld:

$_FILES['Form']['name']['een']['twee'][0] = "empty.gif"
naar mijn mening is dit enorm onlogisch, want nu kan je niet makkelijk met een recusieve functie er doorheen gaan. Ik heb al lopen prusten om een funtie te maken die dat wel kan, maar zonder veel succes.

$_FILES['Form']['een']['twee'][0]['name'] = "empty.gif zou dus wel logisch geweest zijn.


drm:
Ja dat weet ik, maar na eindeloos prutsen kwam ik er toch niet uit. :(

  • Atmosphere
  • Registratie: April 2000
  • Laatst online: 03-12-2025
Verwijderd schreef op 13 augustus 2002 @ 18:07:
xtentic:
Uhm ja dat zeg ik toch? :?

$_FILES['Form']['een']['twee'][0]['name'] = "empty.gif zou dus wel logisch geweest zijn.
ik zie hier delphi in :) hehe :)
Maar ja zou idd wel beter zijn

-x(Al is de wereld is nog zo klein. Atmosphere vind hem wel fijn)x-; Sys; t-net


Verwijderd

ik leg het weer eens te vaag uit :P..sorry :{ ben ik niet echt goed in blijkbaar, maar je hebt je antwoord en daar gaat het om :)
Pagina: 1