Video's uploaden script
ik heb een script om filmpjes te uploaden (alleen mp4-tjes, maar meer hoeft ook niet).
Ik heb vier bestanden in .mp4 vorm.
Een ervan wil uploaden, de andere drie krijgen via onderstaand script een "Verkeerde bestand" error.
De grootten van de bestanden zijn:
3.606 kB (wil wel uploaden)
23.700 kB
28.335 kB
299.037 kB
De laatste drie willen dus niet uploaden.
Help?
Code (php)
1
2
2
IK HEB DIT SCRIPT VERWIJDERD, OMDAT ER AL AANPASSINGEN IN ZIJN GEMAAKT. VOOR HET ACTUEESTE (!) SCRIPT, ZIE BIJ DE LAATSTE POSTS!
ALVAST BEDANKT!
ALVAST BEDANKT!
Gewijzigd op 07/02/2013 20:19:35 door Kevin Zegikniet
Zie eens naar deze settings (maar dan evt. met andere cijfers):
php_value upload_max_filesize 10M
php_value post_max_size 20M
Gewijzigd op 06/02/2013 14:58:09 door Kris Peeters
Ten tweede, die instellingen had ik ook al gewijzigd, naar beide 3200M.
NB: ze staan wel in omgekeerde volgorde in mijn php.ini
Ik zal het nog eens proberen.
EDIT: Het lukt nu wel, met een ander filmpje van 12.468 kB aan grootte.
EDIT: Het volgende filmpje van 432 MB lukt weer niet, met een "Verkeerd bestand" error...
EDIT: Ook als ik bij beide getallen er drie nullen tussen zet (3.200.000 maar dan zonder de puntjes) lukt het nog niet.
Gewijzigd op 06/02/2013 20:34:50 door Kevin Zegikniet
Kan het zijn dat je host een grens stelt?
(en later moet ik voor de opdracht LAMPP op UBUNTU gebruiken, maar ik denk dat ik dan gewoon de php.ini zo aanpas naar degene die hier uiteindelijk gaat werken) op mijn eigen computer.
Of is er dan automatisch een of andere grens ingesteld die ik nog niet heb aangepast?
Als je php.ini wijzigt moet je Apache altijd opnieuw opstarten.
Standaard is de maximale upload_max_filesize 8M. upload_max_filesize is de php instelling die regelt hoe groot een bestand maximaal mag zijh als je deze upload. post_max_size is de maximale grote dat een POST request (dus een formulier dat je naar de website verstuurd zijn mag. Standaard is dit ook 8M. Je zal deze waardes moeten aanpassen naar een waarde die groot genoeg is om je video's te kunnen uploaden. Tevens moet je een controle in je uploadscript maken die controleerd of het bestand groter is dan de maximale grote.
Het kan ook zijn dat je memory_limit moet aanpassen naar een hoger aantal bytes. memory_limit is de hoeveelheid geheugen die een script mag gebruiken.
Nadat je een instelling in php.ini hebt aangepast moet je apache herstarten of herladen. Anders worden de nieuwe instellingen niet gebruikt.
Bedenk wel dat een bestand van 400MB uploaden via de browser tijd zal kosten he. houd daar rekening mee.
Heb ik dus net even geprobeerd, met nog steeds dezelfde error.
Ik zal eens kijken of die memory_limit nut heeft.
En het bestand van 23 kB wil dus niet (kleinste bestand wat niet wil). ik zal eens kijken of ik kan uitpuzzelen bij welke grootte de grens ligt.
EDIT: ik heb memory_limit van 32M naar 3200M veranderd.
Geen enkel filmpje wil nu nog uploaden, zelfs het filmpje wat eerst werkte mislukt nu.
Als ik het script dan bekijk, zit de fout dus ergens in de eerste paar regels.
Gewijzigd op 07/02/2013 13:47:03 door Kevin Zegikniet
Kevin Zegikniet op 07/02/2013 13:43:41:
Als ik het script dan bekijk, zit de fout dus ergens in de eerste paar regels.
O ja; je houdt geen rekening met de volgorde van de operatoren. && gaat voor op ||.
dit:
Code (php)
1
2
3
2
3
<?php
if(($_FILES["file"]["type"] == "video/mp4") || ($_FILES["file"]["type"] == "video/flv") && ($_FILES["file"]["size"] < 5000000000))
?>
if(($_FILES["file"]["type"] == "video/mp4") || ($_FILES["file"]["type"] == "video/flv") && ($_FILES["file"]["size"] < 5000000000))
?>
Betekent:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if (
($_FILES["file"]["type"] == "video/mp4")
|| ( ($_FILES["file"]["type"] == "video/flv") && ($_FILES["file"]["size"] < 5000000000) )
)
?>
if (
($_FILES["file"]["type"] == "video/mp4")
|| ( ($_FILES["file"]["type"] == "video/flv") && ($_FILES["file"]["size"] < 5000000000) )
)
?>
-------------------
Wat jij echter wil, is:
Code (php)
Of daarmee alles opgelost is, weet ik niet, maar 't is zeker een goed begin.
Gewijzigd op 07/02/2013 14:29:06 door Kris Peeters
Ik zal het vanavond even proberen, nu heb ik geen tijd.
Ik post wel even wat het resultaat is.
EDIT: hij wil nu het filmpje van 12kB ook uploaden. Verder nog niks...
Toevoeging op 07/02/2013 20:18:22:
Ik heb nog een ander script wat niet zoveel verschilt.
Die wil ook beide kleine filmpjes (3.606 kB en 12.468 kB) uploaden, maar bij het filmpje van 23.700 KB zegt 'ie heel snel: invalid file.
Ik gebruik trouwens google Chrome. Verschilt het iets met Firefox, wat ik ook gebruik?
Ik zal het zelf ook even testen.
Het andere script:
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
//image types and file size
if ( ( ($_FILES["file"]["type"] == "video/mpeg")
|| ($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "video/flv")
|| ($_FILES["file"]["type"] == "video/wmv") )
&& ($_FILES["file"]["size"] < 2000000000)) //2.000.000.000 = 2GB
{
if ($_FILES["file"]["error"] > 0)
{ echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}
else
{ //temporary storage
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{ echo $_FILES["file"]["name"] . " already exists. "; }
else
{
//storage of file
move_uploaded_file($_FILES["file"]["tmp_name"],
"uploads2/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads2/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "<a href='javascript:history.back()'>Invalid file!</a><br />";
}
?>
//image types and file size
if ( ( ($_FILES["file"]["type"] == "video/mpeg")
|| ($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "video/flv")
|| ($_FILES["file"]["type"] == "video/wmv") )
&& ($_FILES["file"]["size"] < 2000000000)) //2.000.000.000 = 2GB
{
if ($_FILES["file"]["error"] > 0)
{ echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}
else
{ //temporary storage
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{ echo $_FILES["file"]["name"] . " already exists. "; }
else
{
//storage of file
move_uploaded_file($_FILES["file"]["tmp_name"],
"uploads2/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads2/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "<a href='javascript:history.back()'>Invalid file!</a><br />";
}
?>
Het eerste script, met wijzigingen:
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
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
<?php
$allowedExts = array("mp4", "flv");
$extension = end(explode(".", $_FILES["file"]["name"]));
if (
( ($_FILES["file"]["type"] == "video/mp4") || ($_FILES["file"]["type"] == "video/flv") )
&& ($_FILES["file"]["size"] < 5000000000) //5.000.000.000 = 5GB
&& in_array($extension, $allowedExts) )
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error upload: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Grootte: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
if (file_exists("uploads/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " bestaat al. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"uploads/" . $_FILES["file"]["name"]);
echo "Opgeslagen in: " . "uploads/" . $_FILES["file"]["name"];
} } }
else
{ echo "<a href='javascript:history.back()'>Verkeerde bestand!</a><br />"; }
?>
$allowedExts = array("mp4", "flv");
$extension = end(explode(".", $_FILES["file"]["name"]));
if (
( ($_FILES["file"]["type"] == "video/mp4") || ($_FILES["file"]["type"] == "video/flv") )
&& ($_FILES["file"]["size"] < 5000000000) //5.000.000.000 = 5GB
&& in_array($extension, $allowedExts) )
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error upload: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Grootte: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
if (file_exists("uploads/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " bestaat al. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"uploads/" . $_FILES["file"]["name"]);
echo "Opgeslagen in: " . "uploads/" . $_FILES["file"]["name"];
} } }
else
{ echo "<a href='javascript:history.back()'>Verkeerde bestand!</a><br />"; }
?>
Toevoeging op 07/02/2013 21:05:14:
Gechecked: firefox maakt geen verschil.
Ik denk dat het 'm wel in de groottes ligt. ik zal eens kijken of ik ergens een filmpje van ongeveer 16 kB kan vinden en daarmee testen.
Gewijzigd op 07/02/2013 20:21:18 door Kevin Zegikniet
Kevin Zegikniet op 06/02/2013 20:18:49:
EDIT: Het volgende filmpje van 432 MB lukt weer niet, met een "Verkeerd bestand" error...
Weet je hoe lang dat zou gaan duren.
Daar heb je FTP voor.