file upload
Hallo.
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?
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>';
?>
name="file'.$i.'"
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
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
Ok,
Maar hoe kan ik ze in de POST dan uitlezen?
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
Ok, Ik heb het geprobeerd maar ik krijg de volgende fout:
Return Code: Array
Return Code: Array
Return Code: Array
Return Code: Array
Return Code: Array
wat doe ik fout?
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>
je hebt geen eens keken naar een var_dump($_POST) / var_dump($_FILES).
als je dat bekeken hebt dan zal het ook zo moeten zjn dat je ziet wat je fout gedaan hebt.
als je dat bekeken hebt dan zal het ook zo moeten zjn dat je ziet wat je fout gedaan hebt.
ik heb gekeken op: http://nl.php.net/var_dump
maar nee, ik zie niet wat ik fout doe :S
maar nee, ik zie niet wat ik fout doe :S
$_FILES['file']['name'] is een array, zoals je zo te zien weet, want je gebruikt hem als argument voor de foreach-lus. Maar $_FILES['file']['error] is dat ook, en $_FILES['file']['size'] ook. Als je daar de juiste waarde uit wilt pakken, moet je die arrays benaderen via hun key, $key die je foreach-lus oplevert.
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.
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.
Ohh ok,
Maar dan snap ik de output niet van de var_dump..
Ik upload 1 bestand, nl.gif
dan krijg ik:
Hij slaat niets op in de ftp...
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>
Kijk anders even bij deze tutorial, daarin heb ik beschreven hoe je een file upload
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
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.
Ik heb de uploader bij de scripts toegevoegd.
http://www.phphulp.nl/php/script/classes/uploader-class/1792/
http://www.phphulp.nl/php/script/classes/uploader-class/1792/
Bij uploadscripts gaat het vaak fout met de rechten die de map heeft waarnaar je je bestanden wilt uploaden. Wat ook vaak fout gaat, is de verwijzing naar de goede map.
Probeer maar eens:
Probeer maar eens:
Je had aardig wat foutjes in je code staan. Probeer het eens middels onderstaande code:
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 -
bij het controleren van de groote van een bestand:
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:
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 />";
}
}
}
?>
Gebruik nog even de aangepast versie van mijn post, want ik had zelf een foutje gemaakt en snel aangepast.
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.
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 -
Dubbelpost
Gewijzigd op 28/06/2010 12:41:13 door Arjan -
ok top.
Waar vind ik de error codes?
Zodat ik kan uitlezen wat Return Code: 4 is
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 -
ok dit begind er op te lijken :D
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:
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
Je zal dan dit moeten doen:
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...
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 -




