Grænse på fil upload størrelse

Tags:    html

Jeg har en upload side hvor brugerne kan uploade filer :
http://scootergrisen.dk/scooterhjemmeside/upload.php

Det virker ok men mit webhotel har en grænse så folk højst kan uploade filer på 12 MB hver.

Hvis man uploader en fil som er større så står den og uploader og den enden med at brugeren kommer til at vente og vente og til sidst så bliver filen ikke gemt på serveren alligevel og desuden får brugeren ikke nogen besked bagefter.

Jeg vil gerne have at brugeren får besked på at filen er for stor idet de forsøger at uploade den sådan at den slet ikke går igang med at uploade når filen er større end 12 MB.

Hvordan gør jeg det ?

Jeg bruger HTML 5 og PHP på Apache.

PS : Hvis i gider så må i gerne prøve at uploade noget og skriv hvordan i syns den virker og specielt hvad der ikke virker så godt.



Indlæg senest redigeret d. 04.11.2011 21:43 af Bruger #13010
8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Tror umiddelbart ikke det er muligt. Typisk så bliver forms sendt som typen "multipart/form-data" det er først når filen er modtaget at serveren/php ved hvor stor filen er.

Eneste måde jeg kan forestille mig det kan gøres client side er hvis du kan hente informationerne fra DOMen efter filen er valgt. Ved slet ikke om en file input DOM element har sådanne oplysning som fil størrelse. Måske har HTML5 ændret i tingene så der er en max-size attribut eller noget.

Fandt dette: http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-selecting-files



Indlæg senest redigeret d. 04.11.2011 18:43 af Bruger #14645
Aha...

Jeg har nu gjort sådan at fil storrelsen testes også vises en besked til brugeren om den er for stor eller ej og send knappen skjules hvis den er for stor.

Er der en smartere måde at gøre det på ?

Det skulle jo gerne være sådan at folk stadig kan uploade selvom javascript ikke er slået til så derfor vil jeg helst ikke aktiv submit() fra javascript.

Her er noget af koden.
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 04.11.2011 21:42 af Bruger #13010
Hvis JavaScript er slået fra så vil knappen heller ikke blive slået fra - hvilket betyder submit-knappen stadig er der?



Ja men det er stadig muligt at uploade selvom javascript er slået fra.
Brugeren får bare ikke nogen besked om det så.

Det skal helst ikke være sådan at brugerne kun kan uploade hvis javascript er slået til.



Indlæg senest redigeret d. 05.11.2011 00:03 af Bruger #13010
Hmm får du fejlen før dit PHP script køres eller er det først når du bruger en funktion som bearbejder filen f.eks. move_uploaded_file? Hvis du får den før tror jeg ikke der er noget at gøre.



Hmm får du fejlen før dit PHP script køres eller er det først når du bruger en funktion som bearbejder filen f.eks. move_uploaded_file? Hvis du får den før tror jeg ikke der er noget at gøre.


Jeg får ikke nogen fejl.



Ser ud til at virke fint her. Slog JavaScript fra og prøvede at uploade 14MB. Efterfølgende kom der noget placeholder tekst "vis når filen forsøgt uploadet er for stor"-agtigt noget.

Er ikke sikker på hvad problemet er? Altså uden JavaScript tror jeg ikke du kan fortælle om filen er for stor på forhånd.



Kan du prøve og gøre det igen og tage et screenshot.

Fordi problemet er at her hvis jeg prøver at uploade for eksempel 14 MB så uploader den også efter noget tid viser den bare den samme siden igen uden nogen beskeder eller noget.

Jeg tænker at det måske er fordi webhotellet har en 60 sekunders grænse og hvis filen tager længere tid at uploade så sker der bare ik noget.

Jeg har prøvet hvor man kan skrive :
<input type="hidden" name="MAX_FILE_SIZE" value="12582912"/>
Også skulle $_FILES["testfil"]["error"] returner 2 hvis filen er større og dermed kan man undlade at forsøge at uploade filen.
Det har virker tidligere men kan ikke få det til at virke igen.




t