bestand uploaden naar server
Ik heb hier een script om bestanden te uploaden, maar nu kom ik hier niet mee verder, want ik krijg nergens errors of iets dergelijks van wat er nou fout gaat..
ik zal hier even de scripts plaatsen.
als eerste de interface om het bestand uit te kiezen en (eventueel) de bestandsnaam aan te passen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head><title>Upload een bestand</title></head>
<body>
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<p>Je kunt de <b>naam om up te loaden leeg laten</b>. Dan wordt de naam zoals het bestand om het moment zelf heet.</p>
<form enctype="multipart/form-data" action="upload.php" method="post">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Selecteer een bestand: <input name="userfile" type="file"><br />
Naam om up te loaden: <input name="newname" type="text"><br />
<input type="submit" value="upload bestand" />
</p>
</form>
</body>
</html>
<head><title>Upload een bestand</title></head>
<body>
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<p>Je kunt de <b>naam om up te loaden leeg laten</b>. Dan wordt de naam zoals het bestand om het moment zelf heet.</p>
<form enctype="multipart/form-data" action="upload.php" method="post">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Selecteer een bestand: <input name="userfile" type="file"><br />
Naam om up te loaden: <input name="newname" type="text"><br />
<input type="submit" value="upload bestand" />
</p>
</form>
</body>
</html>
Hier dan de code van het uploaden van het bestand.
Ik weet ook net precies hoe ik goede map krijg voor waar het naartoe gaat, want de upload.php staat al in 2 mappen diep en daarna staat de bestemming van de bestanden weer uit die 2 mappen en dan weer 3 mappen diep ergens anders.
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
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
<?
global $_FILES;
error_reporting(E_ALL);
ini_set('display_errors', '1');
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "pdf";
$allow[4] = "doc";
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
if (is_uploaded_file($_FILES['userfile']['name'])) {
move_uploaded_file($_FILES['userfile']['name'], "../../userfiles/File/PDF/" . $uploadname);
echo "Het bestand is geupload onder de naam: $uploadname";
}
}
else
{
echo "Jij bent stout! Mag niet hoor!";
}
?>
global $_FILES;
error_reporting(E_ALL);
ini_set('display_errors', '1');
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "pdf";
$allow[4] = "doc";
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
if (is_uploaded_file($_FILES['userfile']['name'])) {
move_uploaded_file($_FILES['userfile']['name'], "../../userfiles/File/PDF/" . $uploadname);
echo "Het bestand is geupload onder de naam: $uploadname";
}
}
else
{
echo "Jij bent stout! Mag niet hoor!";
}
?>
(pas deze site aan op mijn stage en stagebegeleider is paar daagjes weg dus zit even vast op dit soort stomme dingen)
Danku!
move_uploaded_file($_FILES['userfile']['name'], ........
Probeer de temporary_name eens.
(Weet zo even niet precies hoe je het schrijft).
Gewijzigd op 02/03/2011 14:51:55 door - SanThe -
- Die ... error_reporting(E_ALL); ...
Dat moet niet binnen de <body>. Dat gaat over php fouten, niet over html fouten.
Zet dat helemaal bovenaan.
- Die extensie check is niet goed. De tijd dat extensies maar drie letters mochten zijn, is al een tijd achter ons.
'mijn_foto.jpeg' zal bij jou worden tegengehouden; onterecht. Ook files met een extensie in hoofdletters worden bij jou tegengehouden.
Extensies checken, doe je met pathinfo. Hier vind je uitgewerkte voorbeelden (bij de commentaren) http://php.net/manual/en/function.pathinfo.php
- SanThe - op 02/03/2011 14:51:31:
Dit is niet goed.
move_uploaded_file($_FILES['userfile']['name'], ........
Probeer de temporary_name eens.
(Weet zo even niet precies hoe je het schrijft).
move_uploaded_file($_FILES['userfile']['name'], ........
Probeer de temporary_name eens.
(Weet zo even niet precies hoe je het schrijft).
ehmm ik kan volgensmij gewoon dan gewoon tmp_name doen of iets dergelijks, maar hoe kan ik hiermee verder komen dan? Wat is dan het voordeel van er tmp_name van te maken dat snap ik niet helemaal?
en voor die extentie's eventjes puzzellen, maar daar kan ik voor 5en vast nog wel wat moois tussen vinden danku !
Gewijzigd op 02/03/2011 16:40:35 door Wijnand H