Versio

Multi upload | Offset

Overzicht Reageren

Mr.Ark

Mr.Ark

25/11/2009 11:09:00
Quote Anchor link
Beste mensen,

Ben bezig met een multiple upload systeempje voor images, alleen kom even niet verder door het volgende probleem.

ik heb een lijst met upload fields, een array.

Ik controleer of er lege waarden tussen zitten en "unset" die dan.

Alleen als ik zeg maar de eerste 3 open laat en ik kies bij de 4e een image en wil dan uploaden dan krijg ik een undefined offset melding, heb tijdje gezocht waar het aan kon liggen maar kom er niet uit, hopelijk kan 1 van jullie mij een zetje in de goede richting geven.

Het stukje waar de foutmelding zit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?PHP
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    foreach($_FILES['field']['name'] as $Key => $Value)
    {
        
        if(empty($Value))
        {

            unset($_FILES['field']['name'][$Key]);
        }
    }


    $Array = array_values($_FILES['field']['name']);
        
    if(count($Array) == 0)
    {

        $Message[] = '[!] Please select atleast 1 file.';
    }

    else
    {
        $Count = count($Array);
        
        $Keys = array_keys($_FILES['field']);
            
        for($i = 0; $i < $Count; $i++)
        {

            foreach($Keys as $Key)
            {
    
                $Filearray[$i][$Key] = $_FILES['field'][$Key][$i];
            }
        }

        # Code gaat hier weer verder...
    }
}


?>


Als je images selecteerd vanaf boven naar beneden dan gaat het wel goed.

Edit:


Moet ik natuurlijk nog wel even zeggen waar de fout optreed, dat is op de volgende regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?PHP $Filearray[$i][$Key] = $_FILES['field'][$Key][$i]; ?>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
PHP hulp

PHP hulp

25/05/2012 06:16:15
Gesponsorde koppelingen:
 
Mr.Ark

Mr.Ark

26/11/2009 10:45:00
Quote Anchor link
#Bump#
 
Emmanuel Delay

Emmanuel Delay

26/11/2009 12:19:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
...
        for($i = 0; $i < $Count; $i++)
        {

            foreach($Keys as $Key)
            {
    
              if (empty($_FILES['field'][$Key]))
                continue;
                $Filearray[$i][$Key] = $_FILES['field'][$Key][$i];
            }
        }

        # Code gaat hier weer verder...
..
?>


probeer zo eens
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Mr.Ark

Mr.Ark

28/11/2009 14:51:00
Quote Anchor link
Hmmm dan krijg ik precies dezelfde foutmelding..
 
Mr.Ark

Mr.Ark

29/11/2009 16:58:00
Quote Anchor link
# Vooruit, nog maar een bumpje
 
Emmanuel Delay

Emmanuel Delay

30/11/2009 22:55:00
Quote Anchor link
Okay, bekijk dit eens.
Helpt dit?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
if (!empty($_FILES))
{

  $mijnFiles = array();
  $keyVolleFiles = 0;
  foreach($_FILES['mijn_file']['tmp_name'] as $key=>$file)
    {

      if ( empty($_FILES['mijn_file']['error'][$key]) ) // eventueel nog extra clausules
      {
      list (
        $mijnFiles[$keyVolleFiles]['name']
      ,
$mijnFiles[$keyVolleFiles]['type']
      ,
$mijnFiles[$keyVolleFiles]['tmp_name']
      ,
$mijnFiles[$keyVolleFiles]['error']
      ,
$mijnFiles[$keyVolleFiles]['size']
      )
      =

      array(
      $_FILES['mijn_file']['tmp_name'][$key]
      ,
$_FILES['mijn_file']['type'][$key]
      ,
$_FILES['mijn_file']['tmp_name'][$key]
      ,
$_FILES['mijn_file']['error'][$key]
      ,
$_FILES['mijn_file']['size'][$key]
      );

      $keyVolleFiles++;
      }
    }

  echo '<pre>'. print_r($mijnFiles, 1) .'</pre>';  // slechts ter illustratie
  // hier heb je dan de doorgestuurde files.

}
else
{
  echo '
  <form enctype="multipart/form-data" method="post" action="">
    <div><input type="file" name="mijn_file[0]"/></div>
    <div><input type="file" name="mijn_file[1]"/></div>
    <div><input type="file" name="mijn_file[2]"/></div>
    <div><input type="file" name="mijn_file[3]"/></div>
    <div><input type="submit" value="ok"/></div>
  </form>
  '
;
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Mr.Ark

Mr.Ark

02/12/2009 23:41:00
Quote Anchor link
Hartstikke bedankt Emmanuel, hij doet het nu perfect. Bedankt voor het helpen.
 



Overzicht Reageren

Get Adobe Flash player