Multi upload | Offset
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:
Als je images selecteerd vanaf boven naar beneden dan gaat het wel goed.
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)
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
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...
}
}
?>
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:
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
Gesponsorde koppelingen:
#Bump#
Hmmm dan krijg ik precies dezelfde foutmelding..
# Vooruit, nog maar een bumpje
Okay, bekijk dit eens.
Helpt dit?
Helpt dit?
Code (php)
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
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>
';
}
?>
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
Hartstikke bedankt Emmanuel, hij doet het nu perfect. Bedankt voor het helpen.



