[PHP] Probleem in upload script

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • G F0rce 1
  • Registratie: Juli 2003
  • Laatst online: 04-03-2015
Ik heb het volgende script :

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$upl = array("upload1", "upload2", "upload3", "upload4", "upload5");
        $fid = $hid;
        for($i = 0; $i < 5; $i++) {
            if(is_uploaded_file($_FILES[$upl[$i]]['tmp_name'])) { 
                // Filename + extensie van geuploade bestand 
                $filename  = $HTTP_POST_FILES[$$upl[$i]][name]; 
                $size = $HTTP_POST_FILES[$$upl[$i]][size]; 
                // Maximum grootte
                if ($size > 204800) {
                    print("Uw foto mag niet groter zijn dan 200 Kb"); 

                } else { 
                    // Upload path 
                    $destination = "/dir/upload/";
                    $name = $fid . "-1.jpg";
                    move_uploaded_file($_FILES[$upl[$i]]['tmp_name'], $destination . $name);
                    @chmod($destination . $name, 0755);
                }


(dit is slechts een gedeelte!)

Wat er nu gebeur: Je unt vijf foto's uploaden, maar telkens doet hij alleen de laatste foto. Ik denk dat dit komt omdat de eerst vier steeds door elkaar overschreven worden. Maar dat weet ik niet zeker. Als dat zo is zou het in het bovenstaande stuk code moeten gebeuren. Zien jullie waar het aanlicht? alvast bedankt !

I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin


Acties:
  • 0 Henk 'm!

Verwijderd

Had je dit al gelezen, vooral aan de user comments zou je wel eens iets kunnen hebben?

Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
Je gebruikt iedere keer $destination . $name als destination, maar je verandert niets aan $name....

Als je daar nou een $i voorplakt of zo?

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

G F0rce 1 schreef op 22 juli 2003 @ 10:41:
Ik denk dat dit komt omdat de eerst vier steeds door elkaar overschreven worden. Maar dat weet ik niet zeker. Als dat zo is zou het in het bovenstaande stuk code moeten gebeuren. Zien jullie waar het aanlicht? alvast bedankt !
Zou je dat misschien niet eerst kunnen uitzoeken of dat het probleem is..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

boven de for-loop geef je $fid een waarde. Vervolgens schrijf je elke foto weg als $fid."-1.jpg". Dan worden ze inderdaad allemaal over elkaar weggeschreven. Je moet een waarde die veranderd (zoals filename of i) gebruiken als naam bij het opslaan..

Acties:
  • 0 Henk 'm!

  • G F0rce 1
  • Registratie: Juli 2003
  • Laatst online: 04-03-2015
ik doe tog
PHP:
1
 $name = $fid . "-1.jpg";
:?

of licht het hieraan? :

PHP:
1
 filename  = $HTTP_POST_FILES[$$upl[$i]][name];
En wat gebeurt daar exaxt want ik ben de logische beredenatie ff kwijt !

[ Voor 64% gewijzigd door G F0rce 1 op 22-07-2003 11:41 . Reden: extra info ! ]

I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin


Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
G F0rce 1 schreef op 22 July 2003 @ 11:40:
ik doe tog
PHP:
1
 $name = $fid . "-1.jpg";
:?
ja, en?
Als je nou goed kijkt zie je dat $fid niet veranderd...
Dus overschrijf je iedere keer hetzelfde bestand...

Kom op hoor, dit kan je zelf ook makkelijk achterhalen...
Gewoon onder move_uploaded_file even:
PHP:
1
echo $_FILES[$upl[$i]]['tmp_name'] . "Filename: " .$destination . $name;

zetten, dan weet je binnen no time of je filename wel veranderd wordt... :)

[ Voor 6% gewijzigd door RupS op 22-07-2003 11:43 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

G F0rce 1 schreef op 22 juli 2003 @ 11:40:
ik doe tog
PHP:
1
 $name = $fid . "-1.jpg";
:?

of licht het hieraan? :

PHP:
1
 filename  = $HTTP_POST_FILES[$$upl[$i]][name];
En wat gebeurt daar exaxt want ik ben de logische beredenatie ff kwijt !
Je verandert $fid niet in de loop, dus de naam blijft hetzelfde.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • G F0rce 1
  • Registratie: Juli 2003
  • Laatst online: 04-03-2015
laatmaar, opgelost dankje _/-\o_ ! , wat moest ik zonder julie!

[ Voor 96% gewijzigd door G F0rce 1 op 11-11-2004 11:42 . Reden: Gelukt :Y! ]

I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin

Pagina: 1