Fout bij namen upload bestand.
Ik ben bezig met een uploadscript... echter krijg ik iets niet voor elkaar.
Ik heb een formulier. In dat formulier word een naam toegewezen via <input type="text" name="name"> en kan er een bestand worden gekozen via <input type="file" name="filedata">.
Zodra er op submit gedrukt word word hij doorgestuurd naar exec.php waar ik het volgende script draai:
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
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
<?php
// Controleer of het een fotobestand is
if ((($_FILES["filedata"]["type"] == "image/gif")
|| ($_FILES["filedata"]["type"] == "image/jpeg")
|| ($_FILES["filedata"]["type"] == "image/png"))
//De maximale bestandsgrootte
&& ($_FILES["filedata"]["size"] < 20000))
{
if ($_FILES["filedata"]["error"] > 0)
{
echo "Return Code: " . $_FILES["filedata"]["error"] . "<br />";
}
else
{
//Weergeven van de informatie
echo "Upload: " . $_FILES["filedata"]["name"] . "<br />";
echo "Type: " . $_FILES["filedata"]["type"] . "<br />";
echo "Size: " . ($_FILES["filedata"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["filedata"]["tmp_name"] . "<br />";
if (file_exists("files/" . $_FILES["filedata"]["name"]))
{
echo $_FILES["filedata"]["name"] . " already exists. ";
}
else
{
//Wegschijven van bestand in directory
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_FILES["filedata"]["name"]);
echo "Stored in: " . "files/" . $_FILES["filedata"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
// Controleer of het een fotobestand is
if ((($_FILES["filedata"]["type"] == "image/gif")
|| ($_FILES["filedata"]["type"] == "image/jpeg")
|| ($_FILES["filedata"]["type"] == "image/png"))
//De maximale bestandsgrootte
&& ($_FILES["filedata"]["size"] < 20000))
{
if ($_FILES["filedata"]["error"] > 0)
{
echo "Return Code: " . $_FILES["filedata"]["error"] . "<br />";
}
else
{
//Weergeven van de informatie
echo "Upload: " . $_FILES["filedata"]["name"] . "<br />";
echo "Type: " . $_FILES["filedata"]["type"] . "<br />";
echo "Size: " . ($_FILES["filedata"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["filedata"]["tmp_name"] . "<br />";
if (file_exists("files/" . $_FILES["filedata"]["name"]))
{
echo $_FILES["filedata"]["name"] . " already exists. ";
}
else
{
//Wegschijven van bestand in directory
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_FILES["filedata"]["name"]);
echo "Stored in: " . "files/" . $_FILES["filedata"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Dit script hierboven werkt gewoon zoals het hoort. Echter nu wil ik dus dat het bestand de naam krijgt van wat er ingevuld is in het tekstveld met de naam "name" en had ik dus dit gedaan:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_FILES["filedata"][" . $_POST["name"] . "]);
echo "Stored in: " . "files/" . $_FILES["filedata"]["name"];
?>
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_FILES["filedata"][" . $_POST["name"] . "]);
echo "Stored in: " . "files/" . $_FILES["filedata"]["name"];
?>
Echter werkt dit niet... en krijg ik een foutmelding:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/propirac/public_html/pron/exec.php on line 30
Ik heb het op meerdere manieren geprobeerd maar kom er niet uit... ik weet dat ik de informatie moet opvragen via $_POST["name"] maar krijg het maar niet voor elkaar.
Wie kan me verder helpen?
Gewijzigd op 01/01/1970 01:00:00 door Kevin Stoove
Code (php)
1
2
3
4
5
2
3
4
5
<?php
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_POST["name"]);
echo "Stored in: " . "files/" . $_POST["name"];
?>
move_uploaded_file($_FILES["filedata"]["tmp_name"],
"files/" . $_POST["name"]);
echo "Stored in: " . "files/" . $_POST["name"];
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Zo hernoemt hij inderdaad wel het bestand, echter verliest hij zo wel zijn bestandsextensie, en dat is niet de bedoeling...
Dan zet je die er toch achter.
Hoe bedoel je? Daar schiet ik toch niets mee op gezien ik verschillende extensies gebruik. Heeft geen nut als ik er dan zelf .jpg achterzet indien het .png of .gif is. Hij moet gewoon zijn eigen extensie behouden...
Nee, die extensie haal je uit $_FILES["filedata"].
Ik snap er nu echt helemaal niets meer van zo... :S
En hoe haal jij de extensie uit $_FILES?
php.net/array ..