file upload
Zelf ben ik niet zo bekend met het uploaden van een file.
Maar ik loop tegen het volgende probleem op.
Ik wil controleren of een bestand is ingevoerd bij de input, maar dat gaat ergens fout.
Zelf weet ik niet hoe ik dit kan oplossen, zou iemand mij kunnen helpen?
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
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
<?php
$aantalp = 0;
for ($i = 1; $i <= $_POST['aantal']; $i++) {
$imagename = basename($_FILES['file']['name'.$i]);
if(!$imagename == ""){
$aantalp = $aantalp + 1;
}
echo $imagename;
}
$i = 0;
if($aantalp == 0){
$error .= "Het is verplicht om minimaal <u>1</u> product toe te voegen aan een factuur.<br>";
}
if(!$error == ""){
echo '<b>Foutmelding:</b><br>'.$error;
}else{
// Rest van de code.
}
echo '<form method="post" enctype="multipart/form-data"><table>
<tr>
<td></td>
<td>Bijlage</td>
<td>Omschrijving</td>
</tr>';
for ($i = 1; $i <= $_POST['aantal']; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file'.$i.'" type="file" /></td>
<td><input type="text" name="omschrijving'.$i.'" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
echo '<tr><td colspan="5"><br></td></tr>';
echo '<tr><td colspan="1"><input type="hidden" name="aantalproducten" value="'.$i.'"></td><td colspan="4"><input type="submit" name="submit" value="Zet factuur klaar"></td></tr>
</table>
</form>';
?>
$aantalp = 0;
for ($i = 1; $i <= $_POST['aantal']; $i++) {
$imagename = basename($_FILES['file']['name'.$i]);
if(!$imagename == ""){
$aantalp = $aantalp + 1;
}
echo $imagename;
}
$i = 0;
if($aantalp == 0){
$error .= "Het is verplicht om minimaal <u>1</u> product toe te voegen aan een factuur.<br>";
}
if(!$error == ""){
echo '<b>Foutmelding:</b><br>'.$error;
}else{
// Rest van de code.
}
echo '<form method="post" enctype="multipart/form-data"><table>
<tr>
<td></td>
<td>Bijlage</td>
<td>Omschrijving</td>
</tr>';
for ($i = 1; $i <= $_POST['aantal']; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file'.$i.'" type="file" /></td>
<td><input type="text" name="omschrijving'.$i.'" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
echo '<tr><td colspan="5"><br></td></tr>';
echo '<tr><td colspan="1"><input type="hidden" name="aantalproducten" value="'.$i.'"></td><td colspan="4"><input type="submit" name="submit" value="Zet factuur klaar"></td></tr>
</table>
</form>';
?>
dit is toch echt niet handig, je kan dan beter
name="file[]" er van maken
En als je dan een kijkt naar de var_dump($_FILES), dan zie je hopelijk zelf wel hoe en wat.
Zo niet dan kijk je maar naar dit:
http://wiki.phpfreakz.nl/Upload
Maar hoe kan ik ze in de POST dan uitlezen?
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
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
<?php
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
$_FILES["file"]["name"] = date("dmYHis").$_FILES["file"]["name"];
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"], "uploadsfactuur/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"];
}
}
}
?>
<html>
<body>
<form method="post"
enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
$_FILES["file"]["name"] = date("dmYHis").$_FILES["file"]["name"];
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"], "uploadsfactuur/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"];
}
}
}
?>
<html>
<body>
<form method="post"
enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
Door middel van een foreach
Return Code: Array
Return Code: Array
Return Code: Array
Return Code: Array
Return Code: Array
wat doe ik fout?
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
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
<?php
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES["file"]["name"] as $key => $value){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
if($_FILE["file"]["size"] > 0){
$_FILES["file"]["name"] = date("dmYHis").$value;
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"], "uploadsfactuur/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"];
}
}
}
}
}
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES["file"]["name"] as $key => $value){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}else{
if($_FILE["file"]["size"] > 0){
$_FILES["file"]["name"] = date("dmYHis").$value;
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"], "uploadsfactuur/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"];
}
}
}
}
}
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
als je dat bekeken hebt dan zal het ook zo moeten zjn dat je ziet wat je fout gedaan hebt.
http://nl.php.net/var_dump
maar nee, ik zie niet wat ik fout doe :S
ik heb gekeken op: maar nee, ik zie niet wat ik fout doe :S
Code (php)
Als je vlak voor je foreach-lus var_dump($_FILES) zet, dan laat PHP je zien hoe de $_FILES array is opgebouwd. Dat bedoelde Noppes.
Maar dan snap ik de output niet van de var_dump..
Ik upload 1 bestand, nl.gif
dan krijg ik:
Code (php)
1
array(1) { ["file"]=> array(5) { ["name"]=> array(5) { [0]=> string(6) "nl.gif" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(9) "image/gif" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(14) "/tmp/phprwAerP" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(0) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(360) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } } Bestand nl.gif is tijdelijk opgeslagen als /tmp/phprwAerPBestand is tijdelijk opgeslagen als Return Code: 4
Hij slaat niets op in de ftp...
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
var_dump($_FILES);
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $_FILES['file']['name'][$key] . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key];
if ($_FILES["file"]["error"][$key] > 0){
echo "Return Code: " . $_FILES["file"]["error"][$key] . "<br />";
}else{
if($_FILE["file"]["size"][$key] > 0){
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"][$key])){
echo $_FILES["file"]["name"][$key] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"][$key], "uploadsfactuur/" . $_FILES["file"]["name"][$key]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"][$key];
}
}
}
}
}
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
var_dump($_FILES);
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $_FILES['file']['name'][$key] . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key];
if ($_FILES["file"]["error"][$key] > 0){
echo "Return Code: " . $_FILES["file"]["error"][$key] . "<br />";
}else{
if($_FILE["file"]["size"][$key] > 0){
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"][$key])){
echo $_FILES["file"]["name"][$key] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"][$key], "uploadsfactuur/" . $_FILES["file"]["name"][$key]);
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"][$key];
}
}
}
}
}
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<table>
<tr><td></td><td>Bestand</td><td>Omschrijving</td></tr>
<?php
for ($i = 1; $i <= $aantal; $i++) {
echo '<tr>
<td>'.$i.'</td>
<td><input name="file[]" type="file" /></td>
<td><input type="text" name="omschrijving[]" value="'.$_POST['omschrijving'.$i].'" size="35"></td>
</tr>';
}
?>
<tr><td></td><td><input type="submit" name="submit" value="Submit" /></td><td></td></tr>
</table>
</form>
</body>
</html>
http://www.phphulp.nl/php/tutorial/overig/uploadsysteem/705/uploaden-php/1859/
Later deze dag zal ik nog een upload class bij de scripts plaatsen, maar dan moet je nog even geduld hebben
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
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
array(1) {
["file"]=> array(5) {
["name"]=> array(5) {
[0]=> string(6) "nl.gif"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["type"]=> array(5) {
[0]=> string(9) "image/gif"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["tmp_name"]=> array(5) {
[0]=> string(14) "/tmp/phprwAerP"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["error"]=> array(5) {
[0]=> int(0)
[1]=> int(4)
[2]=> int(4)
[3]=> int(4)
[4]=> int(4)
}
["size"]=> array(5) {
[0]=> int(360)
[1]=> int(0)
[2]=> int(0)
[3]=> int(0)
[4]=> int(0)
}
}
}
["file"]=> array(5) {
["name"]=> array(5) {
[0]=> string(6) "nl.gif"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["type"]=> array(5) {
[0]=> string(9) "image/gif"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["tmp_name"]=> array(5) {
[0]=> string(14) "/tmp/phprwAerP"
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["error"]=> array(5) {
[0]=> int(0)
[1]=> int(4)
[2]=> int(4)
[3]=> int(4)
[4]=> int(4)
}
["size"]=> array(5) {
[0]=> int(360)
[1]=> int(0)
[2]=> int(0)
[3]=> int(0)
[4]=> int(0)
}
}
}
Even wat mooiere weer gegeven. Dat word het een stuk duidelijker. Jammer dat je dat zelf niet doet.
php.net:
If filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued.
Je kunt dus doen in regel 12 - 17 van jou laatste code blokje:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if (file_exists("uploadfactuur/" . $_FILES["file"]["name"][$key])){
echo $_FILES["file"]["name"][$key] . " already exists. ";
} elseif(move_uploaded_file($_FILES["file"]["tmp_name"][$key], "uploadsfactuur/" . $_FILES["file"]["name"][$key])) {
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"][$key];
} else {
echo 'Opslaan mislukt.';
}
echo $_FILES["file"]["name"][$key] . " already exists. ";
} elseif(move_uploaded_file($_FILES["file"]["tmp_name"][$key], "uploadsfactuur/" . $_FILES["file"]["name"][$key])) {
echo "Stored in: " . "uploadfactuur/" . $_FILES["file"]["name"][$key];
} else {
echo 'Opslaan mislukt.';
}
Maak van de destination eens een absuluut pad. En chmod naar 777.
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
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
<?php
$map = $_SERVER['DOCUMENT_ROOT'].'/uploadsfactuur/';
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $file_name . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key];
if ($_FILES['file']['error'][$key] < 1){
if($_FILES['file']['size'][$key] > 0){
if (file_exists($map . $file_name)){
echo $file_name . " already exists. ";
}else{
move_uploaded_file($_FILES['file']['tmp_name'][$key], $map . $file_name);
echo "Stored in: " . $map . $file_name;
}
}
}else{
echo "Return Code: " . $_FILES['file']['error'][$key] . "<br />";
}
}
}
?>
$map = $_SERVER['DOCUMENT_ROOT'].'/uploadsfactuur/';
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $file_name . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key];
if ($_FILES['file']['error'][$key] < 1){
if($_FILES['file']['size'][$key] > 0){
if (file_exists($map . $file_name)){
echo $file_name . " already exists. ";
}else{
move_uploaded_file($_FILES['file']['tmp_name'][$key], $map . $file_name);
echo "Stored in: " . $map . $file_name;
}
}
}else{
echo "Return Code: " . $_FILES['file']['error'][$key] . "<br />";
}
}
}
?>
Gewijzigd op 28/06/2010 12:42:04 door Arjan -
if($_FILES["file"]["size"][$key] > 0){
)
Ik heb gezien, als ik een file wil uploaden, dan krijg ik geen size mee :S
wat doe ik dan fout?
array:
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
44
45
46
47
48
49
50
51
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
array(1) {
["file"]=> array(5) {
["name"]=> array(5) {
[0]=> string(15) "middenboven.png"
[1]=> string(15) "middenonder.png"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["type"]=> array(5) {
[0]=> string(9) "image/png"
[1]=> string(9) "image/png"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["tmp_name"]=> array(5) {
[0]=> string(14) "/tmp/php746Dv6"
[1]=> string(14) "/tmp/phpYY9hfT"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["error"]=> array(5) {
[0]=> int(0)
[1]=> int(0)
[2]=> int(4)
[3]=> int(4)
[4]=> int(4)
}
["size"]=> array(5) {
[0]=> int(56083)
[1]=> int(50727)
[2]=> int(0)
[3]=> int(0)
[4]=> int(0)
}
}
}
Bestand middenboven.png is tijdelijk opgeslagen als /tmp/php746Dv6
Return Code: 0
Bestand middenonder.png is tijdelijk opgeslagen als /tmp/phpYY9hfT
Return Code: 0
Bestand is tijdelijk opgeslagen als
1
size: 0Bestand is tijdelijk opgeslagen als
1
size: 0Bestand is tijdelijk opgeslagen als
1
["file"]=> array(5) {
["name"]=> array(5) {
[0]=> string(15) "middenboven.png"
[1]=> string(15) "middenonder.png"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["type"]=> array(5) {
[0]=> string(9) "image/png"
[1]=> string(9) "image/png"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["tmp_name"]=> array(5) {
[0]=> string(14) "/tmp/php746Dv6"
[1]=> string(14) "/tmp/phpYY9hfT"
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> string(0) ""
}
["error"]=> array(5) {
[0]=> int(0)
[1]=> int(0)
[2]=> int(4)
[3]=> int(4)
[4]=> int(4)
}
["size"]=> array(5) {
[0]=> int(56083)
[1]=> int(50727)
[2]=> int(0)
[3]=> int(0)
[4]=> int(0)
}
}
}
Bestand middenboven.png is tijdelijk opgeslagen als /tmp/php746Dv6
Return Code: 0
Bestand middenonder.png is tijdelijk opgeslagen als /tmp/phpYY9hfT
Return Code: 0
Bestand is tijdelijk opgeslagen als
1
size: 0Bestand is tijdelijk opgeslagen als
1
size: 0Bestand is tijdelijk opgeslagen als
1
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
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
<?php
$rootmap = $_SERVER['DOCUMENT_ROOT'].'/';
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $file_name . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key].'<br>';
if ($_FILES["file"]["error"][$key] > UPLOAD_ERR_OK){
echo '1<br>
size: '. $_FILES["file"]["size"][$key];
if(!$_FILES["file"]["size"][$key] == 0){
echo '2';
if (file_exists($rootmap."uploadsfactuur/" . $file_name)){
echo $file_name . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"][$key], $rootmap."uploadsfactuur/" . $file_name);
echo "Stored in: " . $rootmap . "uploadsfactuur/" . $file_name;
}
}
}else{
echo "Return Code: " . $_FILES["file"]["error"][$key] . "<br />";
}
}
}
?>
$rootmap = $_SERVER['DOCUMENT_ROOT'].'/';
$aantal = 5;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach($_FILES['file']['name'] as $key => $file_name) {
echo 'Bestand ' . $file_name . ' is tijdelijk opgeslagen als ' . $_FILES['file']['tmp_name'][$key].'<br>';
if ($_FILES["file"]["error"][$key] > UPLOAD_ERR_OK){
echo '1<br>
size: '. $_FILES["file"]["size"][$key];
if(!$_FILES["file"]["size"][$key] == 0){
echo '2';
if (file_exists($rootmap."uploadsfactuur/" . $file_name)){
echo $file_name . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"][$key], $rootmap."uploadsfactuur/" . $file_name);
echo "Stored in: " . $rootmap . "uploadsfactuur/" . $file_name;
}
}
}else{
echo "Return Code: " . $_FILES["file"]["error"][$key] . "<br />";
}
}
}
?>
En je krijgt in je var_dump wel een size mee, zie onderaan je output:
["size"]=> array(5) {
[0]=> int(56083)
[1]=> int(50727)
[2]=> int(0)
[3]=> int(0)
[4]=> int(0)
}
De eerste 2 bestanden hebben een attribuut size met als waarde een integer. Dus dat is correct.
Gewijzigd op 28/06/2010 12:45:09 door Arjan -
Gewijzigd op 28/06/2010 12:41:13 door Arjan -
Waar vind ik de error codes?
Zodat ik kan uitlezen wat Return Code: 4 is
http://www.php.net/manual/en/features.file-upload.errors.php
Je kan deze functie gebruiken (code uit bovenstaande link):
Je kan deze functie gebruiken (code uit bovenstaande link):
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
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
<?php
function file_upload_error_message($error_code) {
switch ($error_code) {
case UPLOAD_ERR_INI_SIZE:
return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
case UPLOAD_ERR_FORM_SIZE:
return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
case UPLOAD_ERR_PARTIAL:
return 'The uploaded file was only partially uploaded';
case UPLOAD_ERR_NO_FILE:
return 'No file was uploaded';
case UPLOAD_ERR_NO_TMP_DIR:
return 'Missing a temporary folder';
case UPLOAD_ERR_CANT_WRITE:
return 'Failed to write file to disk';
case UPLOAD_ERR_EXTENSION:
return 'File upload stopped by extension';
default:
return 'Unknown upload error';
}
}
if ($_FILES['file']['error'] === UPLOAD_ERR_OK)
// upload ok
else
$error_message = file_upload_error_message($_FILES['file']['error']);
?>
function file_upload_error_message($error_code) {
switch ($error_code) {
case UPLOAD_ERR_INI_SIZE:
return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
case UPLOAD_ERR_FORM_SIZE:
return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
case UPLOAD_ERR_PARTIAL:
return 'The uploaded file was only partially uploaded';
case UPLOAD_ERR_NO_FILE:
return 'No file was uploaded';
case UPLOAD_ERR_NO_TMP_DIR:
return 'Missing a temporary folder';
case UPLOAD_ERR_CANT_WRITE:
return 'Failed to write file to disk';
case UPLOAD_ERR_EXTENSION:
return 'File upload stopped by extension';
default:
return 'Unknown upload error';
}
}
if ($_FILES['file']['error'] === UPLOAD_ERR_OK)
// upload ok
else
$error_message = file_upload_error_message($_FILES['file']['error']);
?>
Gewijzigd op 28/06/2010 13:20:45 door Arjan -
Maar nu, buiten dat ik een file mee geef, wil ik ook een omschrijving mee geven..
Hoe kan ik die in de zelfde foreach zetten?
Dit werkt niet:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
foreach($_FILES['file']['name'] as $key => $file_name && $_POST['omschrijving'] as $key2=> $omschrijving){
}
?>
foreach($_FILES['file']['name'] as $key => $file_name && $_POST['omschrijving'] as $key2=> $omschrijving){
}
?>
Gewijzigd op 28/06/2010 14:12:20 door Mitchel V
Code (php)
De key van $_FILES['file']['name'] komt overeen met de omschrijving array. Dus dit zal moeten werken.
Ik denk dat het goed is dat je even goed kijkt hoe een array werkt en hoe je er mee kan werken. Want wanneer je in html een input de naam omschrijving[] mee geeft en je hebt hier nog 10x dezelfde inputs staan, dan krijg je dus een array zoals:
$omschrijving[0] = 'Omschrijving 1';
$omschrijving[1] = 'Omschrijving 2';
$omschrijving[2] = 'Omschrijving 3';
etc...
Hier zijn dus de cijfers tussen de brackets de keys van de array en die komen overeen met de keys in je $_FILES['file']['name'] array omdat die ook weer keys bevat, beginnend vanaf 0:
$_FILES['file']['name'][0] = 'Naam bestand 1';
$_FILES['file']['name'][1] = 'Naam bestand 2';
$_FILES['file']['name'][2] = 'Naam bestand 3';
Etc...
Gewijzigd op 28/06/2010 14:48:25 door Arjan -