Error's na groter dan 5mb
Ik ben nu even bezig met een simpel upload scriptje, dat een iets hogere prioriteit heeft dan mijn login script.
Bij bestanden onder de 5 mb doet ie het goed, maar na 5 mb geeft ie allemaal notices terug?:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 3
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 7
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 11
Upload:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 12
Type:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 13
Size:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 14
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 14
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 15
Stored in: uploads/
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 16
Download link: Download
Bestandsnaam
Help?
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
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_FILES["file"]["size"] > "5242880"){
echo 'Bestand te groot, maximaal 5 mb.';
exit;
}
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"]) . "<br />";
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
echo "<br/>Download link: <a href='http://localhost/upload/uploads/" . $_FILES["file"]["name"] ."'>Download</a>";
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Bestandsnaam</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_FILES["file"]["size"] > "5242880"){
echo 'Bestand te groot, maximaal 5 mb.';
exit;
}
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"]) . "<br />";
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
echo "<br/>Download link: <a href='http://localhost/upload/uploads/" . $_FILES["file"]["name"] ."'>Download</a>";
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Bestandsnaam</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
Bij bestanden onder de 5 mb doet ie het goed, maar na 5 mb geeft ie allemaal notices terug?:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 3
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 7
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 11
Upload:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 12
Type:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 13
Size:
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 14
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 14
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 15
Stored in: uploads/
Notice: Undefined index: file in C:\data\home\www\upload\index.php on line 16
Download link: Download
Bestandsnaam
Help?
Via je htacces kan je deze limit omhoog gooien
Haal die kut exit; etc nou eens uit je script. Is al eerder gezegt.
Je vergeet te controleren met isset of $_FILES sowieso wel bestaat!!
Advies: gaat eens leren om je eigen code te debuggen en de foutmelidngen te begrijpen
Dat is toch geen oplossing
dat zal moeilijk gaan want van script logica heeft ie nooit gehoord.
Advies: gaat eens leren om je eigen code te debuggen en de foutmelidngen te begrijpen
Quote:
Via je htacces kan je deze limit omhoog gooien
Dat is toch geen oplossing
Quote:
Haal die kut exit; etc nou eens uit je script. Is al eerder gezegt.
dat zal moeilijk gaan want van script logica heeft ie nooit gehoord.
Gewijzigd op 28/09/2010 20:41:49 door Noppes Homeland
Je checked ook nergens of $_FILES["file"] wel bestaat. En zo te zien bestaat ie niet.
Ik denk dat PHP is ingesteld om bestanden groter dan 5MB niet te uploaden.
Zet eens het volgende bovenin je script het upload nog eens een bestand groter dan 5MB.
Zet eens het volgende bovenin je script het upload nog eens een bestand groter dan 5MB.
Edit:
Als je het script met deze regels online plaatst, maak dan van die 1 een 0.
Dan kunnen bezoekers niet meegenieten van alle errors.
Als je het script met deze regels online plaatst, maak dan van die 1 een 0.
Dan kunnen bezoekers niet meegenieten van alle errors.
Gewijzigd op 28/09/2010 20:45:19 door Martijn B
Na jullie 'gezeur' die check toegevoegd, maar hij geeft de selecteer een bestand error... ?
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
if(!empty($_FILES['file'])){
if($_FILES["file"]["size"] > 5242880){
echo 'Bestand te groot, maximaal 5 mb.';
}
else{
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"]) . "<br />";
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
echo "<br/>Download link: <a href='http://localhost/upload/uploads/" . $_FILES["file"]["name"] ."'>Download</a>";
}
}
}
else
{
echo 'Selecteer een bestand!';
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Bestandsnaam</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
if($_SERVER['REQUEST_METHOD'] == "POST"){
if(!empty($_FILES['file'])){
if($_FILES["file"]["size"] > 5242880){
echo 'Bestand te groot, maximaal 5 mb.';
}
else{
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"]) . "<br />";
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
echo "<br/>Download link: <a href='http://localhost/upload/uploads/" . $_FILES["file"]["name"] ."'>Download</a>";
}
}
}
else
{
echo 'Selecteer een bestand!';
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Bestandsnaam</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
Kijk eens naar je php instelling "upload_max_filesize".
Edit:
Gewijzigd op 28/09/2010 22:22:25 door Martijn B
Antwoorden als 'gezeur' betitelen is totale onzin en onrespectvol naar diegene die je willen helpen, tevens voorkomt het verwijderen van exit() vele problemen.
En maak van if(!empty($_FILES['file'])){ eens if(!empty($_FILES['file']['name'])){
Ga ook eens op zoek naar de structuur van de $_FILES (dit is namelijk een array).
En maak van if(!empty($_FILES['file'])){ eens if(!empty($_FILES['file']['name'])){
Ga ook eens op zoek naar de structuur van de $_FILES (dit is namelijk een array).
Gewijzigd op 28/09/2010 22:50:18 door Arjan -
Arjen - op 28/09/2010 22:47:50:
Antwoorden als 'gezeur' betitelen is een beetje onrespectvol vind je niet?
Helemaal mee eens.
Arjen - op 28/09/2010 22:47:50:
En maak van if(!empty($_FILES['file'])){ eens if(!empty($_FILES['file']['name'])){
Waarom?
Omdat er gevallen zijn dat $_FILES (of dat nou ook het geval is met $_FILES['file'] weet ik eigenlijk niet), gewoon wel bestaat, dus false op empty geeft.
SanThe Nvt op 28/09/2010 22:50:02:
Helemaal mee eens.
Waarom?
Arjen - op 28/09/2010 22:47:50:
Antwoorden als 'gezeur' betitelen is een beetje onrespectvol vind je niet?
Helemaal mee eens.
Arjen - op 28/09/2010 22:47:50:
En maak van if(!empty($_FILES['file'])){ eens if(!empty($_FILES['file']['name'])){
Waarom?
Wanneer je een form submit met daarin een file input dan zal je $_FILES variabele altijd een array bevatten met de standaard keys en zonder waarden. Hierdoor zal een empty functie over de array geen zin hebben. De array is immers niet leeg maar heeft geen waarden.
Edit: En overigens werkt jouw (Dalando) code gewoon hoor!
Gewijzigd op 28/09/2010 22:57:50 door Arjan -
De errors die Dalando De Zuil heeft zeggen mij totaal iets anders.
De index file bestaat niet...
Dus heeft "if(!empty($_FILES['file']))" wel zin.
De index file bestaat niet...
Dus heeft "if(!empty($_FILES['file']))" wel zin.
Edit:
Maar wel vreemd dat file dan helemaal niet bestaat?
Maar wel vreemd dat file dan helemaal niet bestaat?
Gewijzigd op 28/09/2010 23:07:51 door Martijn B
Voer de code van Dalando maar eens uit en zet maar eens een print_r($_FILES['file']); binnen de if($_SERVER['....
Dan zul je zien wanneer je geen bestand selecteert en het form submit dat je dan toch een volledige array zonder waarden terug krijgt. Dan zal de if(!empty(... dus altijd gelden (lees: true retourneert) tenzij er helemaal geen file input met de naam file bestaat.
Dan zul je zien wanneer je geen bestand selecteert en het form submit dat je dan toch een volledige array zonder waarden terug krijgt. Dan zal de if(!empty(... dus altijd gelden (lees: true retourneert) tenzij er helemaal geen file input met de naam file bestaat.
Gewijzigd op 28/09/2010 23:09:25 door Arjan -
@Arjan:
Dat lijkt mij idd logisch.
Ik gok op de instelling "upload_max_filesize" ...
Dat lijkt mij idd logisch.
Ik gok op de instelling "upload_max_filesize" ...
Daar lag het uiteindelijk aan: upload_max_filesize is maxmimaal 2mb bij mij. Bedankt!
Gewijzigd op 29/09/2010 09:27:03 door Dalando De Zuil




