PHP upload script
De map waar ik ze in wil krijgen heet avatars.
Mappenstructuur:
\\webserver\Websites\tmtf-11\website\avatars
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
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
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
<?PHP
$map = "avatars/";
$max = "1000000";
$ext = "jpg JPG gif GIF png PNG";
if ($_POST['Uploaden'])
{
if (!$_FILES['bestand'])
print ("Geef een bestand op!");
else
{
// Bestands naam opvragen
$bestand2 = explode("\\", $_FILES['bestand']['name']);
$laatste = count($bestand2) - 1;
$bestand2 = "$bestand2[$laatste]";
// Extensie van bestand opvragen
$bestand3 = explode(".", $bestand2);
$laatste = count($bestand3) - 1;
$bestand3 = "$bestand3[$laatste]";
$bestand3 = strtolower($bestand3);
// Toegestaande extensies opvragen
$ext = strtolower($ext);
$ext = explode(" ", $ext);
$aantal = count($ext);
for ($tel = 0;$tel < $aantal; $tel++)
{
if ($bestand3 == $ext[$tel])
{
$extfout = "nee";
}
}
if (!$extfout)
{
print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");
}
else
{
if ($_FILES['bestand']['size'] > $max)
print ("Het bestand \"$bestand2\" is groter dan $max bytes!");
else
{
// Opslaan van het bestand
move_uploaded_file($_FILES['bestand'], "$map$bestand2");
print ("Het bestand \"$bestand2\" is met succes geupload!");
}
}
}
}
// Upload formulier
print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>");
?>
$map = "avatars/";
$max = "1000000";
$ext = "jpg JPG gif GIF png PNG";
if ($_POST['Uploaden'])
{
if (!$_FILES['bestand'])
print ("Geef een bestand op!");
else
{
// Bestands naam opvragen
$bestand2 = explode("\\", $_FILES['bestand']['name']);
$laatste = count($bestand2) - 1;
$bestand2 = "$bestand2[$laatste]";
// Extensie van bestand opvragen
$bestand3 = explode(".", $bestand2);
$laatste = count($bestand3) - 1;
$bestand3 = "$bestand3[$laatste]";
$bestand3 = strtolower($bestand3);
// Toegestaande extensies opvragen
$ext = strtolower($ext);
$ext = explode(" ", $ext);
$aantal = count($ext);
for ($tel = 0;$tel < $aantal; $tel++)
{
if ($bestand3 == $ext[$tel])
{
$extfout = "nee";
}
}
if (!$extfout)
{
print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");
}
else
{
if ($_FILES['bestand']['size'] > $max)
print ("Het bestand \"$bestand2\" is groter dan $max bytes!");
else
{
// Opslaan van het bestand
move_uploaded_file($_FILES['bestand'], "$map$bestand2");
print ("Het bestand \"$bestand2\" is met succes geupload!");
}
}
}
}
// Upload formulier
print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>");
?>
Ik zou op regel 47 het veranderen in:
en zet op regel 2 er een / voor en haal de laatste / weg
Misschien ook maar even foutafhandeling toevoegen op je move_uploaded_file?
Ik heb het veranderd maar nog steeds staat er niks in mijn avatars map. Er staat wel dat het bestand succesvol is geupload.
move_uploaded_file($_FILES['bestand'], "$map$bestand2");
- Aar - op 01/10/2012 12:47:34:
Misschien ook maar even foutafhandeling toevoegen op je move_uploaded_file?
Net toegevoegd maar hij laat geen foutmelding zien, alleen wat ik zelf al in het script heb gezet.
Toevoeging op 01/10/2012 12:56:50:
Ooh nu krijg ik deze melding:
Notice: Undefined index: Uploaden in E:\Websites\tmtf-11\website\upload.php on line 7
gebruik server request method ipv isset post input naam..
Warning: move_uploaded_file() expects parameter 1 to be string, array given in E:\Websites\tmtf-11\website\upload.php on line 49
Waarom gebruik je $_REQUEST ?
- Aar - op 01/10/2012 13:26:59:
Waarom gebruik je $_REQUEST ?
Omdat Jaron T dat vroeg in vorige post
Marvin Houweling op 01/10/2012 13:28:29:
Omdat Jaron T dat vroeg in vorige post
- Aar - op 01/10/2012 13:26:59:
Waarom gebruik je $_REQUEST ?
Omdat Jaron T dat vroeg in vorige post
Nee, http://www.php.net/manual/en/reserved.variables.server.php
oftewel; if ($_SERVER['REQUEST_METHOD'] == 'POST') en de rest $_POST laten (op $_FILES) na.
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
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
<?PHP
ini_set('display_errors',1);
error_reporting(E_ALL);
$map = "/avatars";
$max = "1000000";
$ext = "jpg JPG gif GIF png PNG";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!$_FILES['bestand'])
print ("Geef een bestand op!");
else
{
// Bestands naam opvragen
$bestand2 = explode("\\", $_FILES['bestand']['name']);
$laatste = count($bestand2) - 1;
$bestand2 = "$bestand2[$laatste]";
// Extensie van bestand opvragen
$bestand3 = explode(".", $bestand2);
$laatste = count($bestand3) - 1;
$bestand3 = "$bestand3[$laatste]";
$bestand3 = strtolower($bestand3);
// Toegestaande extensies opvragen
$ext = strtolower($ext);
$ext = explode(" ", $ext);
$aantal = count($ext);
for ($tel = 0;$tel < $aantal; $tel++)
{
if ($bestand3 == $ext[$tel])
{
$extfout = "nee";
}
}
if (!$extfout)
{
print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");
}
else
{
if ($_FILES['bestand']['size'] > $max)
print ("Het bestand \"$bestand2\" is groter dan $max bytes!");
else
{
// Opslaan van het bestand
move_uploaded_file($_FILES['bestand'], $map.$bestand2);
print ("Het bestand \"$bestand2\" is met succes geupload!");
}
}
}
}
// Upload formulier
print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>");
?>
ini_set('display_errors',1);
error_reporting(E_ALL);
$map = "/avatars";
$max = "1000000";
$ext = "jpg JPG gif GIF png PNG";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!$_FILES['bestand'])
print ("Geef een bestand op!");
else
{
// Bestands naam opvragen
$bestand2 = explode("\\", $_FILES['bestand']['name']);
$laatste = count($bestand2) - 1;
$bestand2 = "$bestand2[$laatste]";
// Extensie van bestand opvragen
$bestand3 = explode(".", $bestand2);
$laatste = count($bestand3) - 1;
$bestand3 = "$bestand3[$laatste]";
$bestand3 = strtolower($bestand3);
// Toegestaande extensies opvragen
$ext = strtolower($ext);
$ext = explode(" ", $ext);
$aantal = count($ext);
for ($tel = 0;$tel < $aantal; $tel++)
{
if ($bestand3 == $ext[$tel])
{
$extfout = "nee";
}
}
if (!$extfout)
{
print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");
}
else
{
if ($_FILES['bestand']['size'] > $max)
print ("Het bestand \"$bestand2\" is groter dan $max bytes!");
else
{
// Opslaan van het bestand
move_uploaded_file($_FILES['bestand'], $map.$bestand2);
print ("Het bestand \"$bestand2\" is met succes geupload!");
}
}
}
}
// Upload formulier
print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>");
?>
En krijg nu deze error:
Warning: move_uploaded_file() expects parameter 1 to be string, array given in E:\Websites\tmtf-11\website\upload.php on line 50
$_FILES['bestand'] is een array met meerdere waardes. Gebruik eens: $_FILES['bestand']['tmp_name']
Warning: move_uploaded_file(/avatarsJellyfish.jpg): failed to open stream: Permission denied in E:\Websites\tmtf-11\website\upload.php on line 50
Warning: move_uploaded_file(): Unable to move 'C:\Temp\phpE51E.tmp' to '/avatarsJellyfish.jpg' in E:\Websites\tmtf-11\website\upload.php on line 50
Het bestand "Jellyfish.jpg" is met succes geupload!
ik gok dat je geen schrijf rechten hebt voor de bewuste map....
Kijk nou eens naar de naam: '/avatarsJellyfish.jpg'
En wat als mijn avatar dezelfde naam heeft?
Sander Z op 01/10/2012 15:50:34:
En wat als mijn avatar dezelfde naam heeft?
Dan wordt deze automatisch overschreven...
- SanThe - op 01/10/2012 14:35:19:
Kijk nou eens naar de naam: '/avatarsJellyfish.jpg'
Ja hij zet het aan elkaar en dat lijkt me niet de bedoeling want dat is de naam van het bestand. Dus hoe zou ik mijn code moeten aanpassen dan?