undefined index upload script
Ik weet niet hoe ik die moet definieeren:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpFilePath != ""){
//nieuwe filepath aanmaken
$newFilePath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//evt echo's
}
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpFilePath != ""){
//nieuwe filepath aanmaken
$newFilePath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//evt echo's
}
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
Gewijzigd op 21/05/2013 20:16:50 door Jack Maessen
Ja logisch, want $_FILES is dan nog leeg.
Dat kan je voorkomen door regel 2 tm 20 even in een isset($_FILES) te gooien.
ervoor geplaatst en geen error meer.
Overigens, ik had eerst deze regel:
Maar toen deed ie niet meer uploaden.
Ik dacht toch dat die verkorte versie algemeen geaccepteerd was...
Echter, nu zit ik nog met 1 probleempje:
Bij uploaden meerdere bestanden tegelijk (bijv 4)geeft ie ook 4 keer dezelfde echo.
Hoe kan ik dat voorkomen? (1 keer is genoeg)
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
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
echo 'Bestand successvol geupload!<br /><br />';
}
else {
echo 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
} // eind ['REQUEST_METHOD']
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
echo 'Bestand successvol geupload!<br /><br />';
}
else {
echo 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
} // eind ['REQUEST_METHOD']
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
Gewijzigd op 21/05/2013 21:26:16 door Jack Maessen
A, dus als ik geen bestand invoer gaat hij het wel uploaden?
Gooi er ook nog even een controle op $_FILES bij... (isset(), !empty() en count() oid).
Quote:
Maar toen deed ie niet meer uploaden.
Je mag morgen wel even in de klas komen zitten tijdens taal hoor.
"deed uploaden". Uploaden is al een werkwoord en heeft geen hulpwerkwoord nodig.
Quote:
Ik dacht toch dat die verkorte versie algemeen geaccepteerd was...
Is ook zo. Maar dan moet er iets als TRUE/FALSE zijn.
Quote:
Bij uploaden meerdere bestanden tegelijk (bijv 4)geeft ie ook 4 keer dezelfde echo.
Hoe kan ik dat voorkomen? (1 keer is genoeg)
Hoe kan ik dat voorkomen? (1 keer is genoeg)
De meldingen in een array gooien en dan aan het eind een array_unique() eroverheen.
Beter kan je ook gewoon melden WELK bestand er gelukt is (en welk niet).
Dan is het geen enkel probleem.
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
$meldingen[] = 'Bestand successvol geupload!<br /><br />';
}
else {
$meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
// toon hier de unieke meldingen
echo implode("<br>", array_unique($meldingen));
} // eind ['REQUEST_METHOD']
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
//tijdelijke file path
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
$meldingen[] = 'Bestand successvol geupload!<br /><br />';
}
else {
$meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
// toon hier de unieke meldingen
echo implode("<br>", array_unique($meldingen));
} // eind ['REQUEST_METHOD']
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
[/quote]
Werkt perfect. Dankje...
Maar extra doneren mag altijd ;)
Dit wil me niet lukken (zie regel 45 t/m 52)
de code tot dusver:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
//error_reporting(E_ALL);
$result = 'Kies een bestand om te uploaden<br /><br />';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//definities
$i=0;
// check of veld leeg is
if($_FILES['upload']['name'][$i] == "") {
echo 'Inputveld is leeg. Browse eerst voor een image en klik dan op Upload Bestanden!<br /><br />';
}
else {
// upload bestand(en)
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
$maximum_size = $_POST['maxsize']; // maximum groote in bytes (5Mb)
//tijdelijke filepath
$filename = $_FILES['upload']['tmp_name'][$i];
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
$size=filesize($_FILES['upload']['tmp_name'][$i]);
// check grootte bestand
if ($size > $maximum_size) {
$result = 'Bestand is te groot!<br /><br />';
die(include 'form.php'); // stop met uploaden, terug naar form
}
// check of bestand een image is
$filecheck = basename($_FILES['upload']['tmp_name'][$i]);
$ext = strtolower(substr($filecheck, strrpos($filecheck, '.') + 1));
if (!(($ext == "jpg" || $ext == "gif" || $ext == "png") && ($_FILES["upload"]["type"] == "image/jpeg" || $_FILES["upload"]["type"] == "image/gif" || $_FILES["upload"]["type"] == "image/png") )){
$result = 'Bestand is geen image!<br /><br />';
die(include 'form.php');
}
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
$meldingen[] = 'Bestand(en) successvol geupload!<br /><br />';
}
else {
$meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
// unieke meldingen
echo implode("<br>", array_unique($meldingen));
}
} // eind ['REQUEST_METHOD']
echo $result;
?>
//error_reporting(E_ALL);
$result = 'Kies een bestand om te uploaden<br /><br />';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//definities
$i=0;
// check of veld leeg is
if($_FILES['upload']['name'][$i] == "") {
echo 'Inputveld is leeg. Browse eerst voor een image en klik dan op Upload Bestanden!<br /><br />';
}
else {
// upload bestand(en)
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
$maximum_size = $_POST['maxsize']; // maximum groote in bytes (5Mb)
//tijdelijke filepath
$filename = $_FILES['upload']['tmp_name'][$i];
$tmpfilepath = $_FILES['upload']['tmp_name'][$i];
$size=filesize($_FILES['upload']['tmp_name'][$i]);
// check grootte bestand
if ($size > $maximum_size) {
$result = 'Bestand is te groot!<br /><br />';
die(include 'form.php'); // stop met uploaden, terug naar form
}
// check of bestand een image is
$filecheck = basename($_FILES['upload']['tmp_name'][$i]);
$ext = strtolower(substr($filecheck, strrpos($filecheck, '.') + 1));
if (!(($ext == "jpg" || $ext == "gif" || $ext == "png") && ($_FILES["upload"]["type"] == "image/jpeg" || $_FILES["upload"]["type"] == "image/gif" || $_FILES["upload"]["type"] == "image/png") )){
$result = 'Bestand is geen image!<br /><br />';
die(include 'form.php');
}
//filepath aanmaken
if ($tmpfilepath != ""){
//nieuwe filepath aanmaken
$newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];
//Upload file naar definitive map
if(move_uploaded_file($tmpfilepath, $newfilepath)) {
//evt echo's
$meldingen[] = 'Bestand(en) successvol geupload!<br /><br />';
}
else {
$meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
}
}
}
// unieke meldingen
echo implode("<br>", array_unique($meldingen));
}
} // eind ['REQUEST_METHOD']
echo $result;
?>
Toevoeging op 22/05/2013 20:59:07:
ik heb hem werkende nu:
functie gemaakt voor extensies;
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
// functie image extensie
function get_image_extension($name) {
$name = strtolower($name);
$i = strrpos($name,".");
if (!$i) { return ""; }
$l = strlen($name) - $i;
$extension = substr($name, $i+1,$l);
return $extension;
}
function get_image_extension($name) {
$name = strtolower($name);
$i = strrpos($name,".");
if (!$i) { return ""; }
$l = strlen($name) - $i;
$extension = substr($name, $i+1,$l);
return $extension;
}
en:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$extension = get_image_extension($filename);
if(($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif") && ($extension != "png")) {
$result = 'Bestand(en) is geen image!<br /><br />';
header('Location: uploader3.php'); // stop met uploaden, terug naar form
if(($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif") && ($extension != "png")) {
$result = 'Bestand(en) is geen image!<br /><br />';
header('Location: uploader3.php'); // stop met uploaden, terug naar form
Gewijzigd op 22/05/2013 16:32:17 door Jack Maessen