Grote bestanden uploaden
Uit DutchJoomla! Wiki
De meeste webservers zullen het uploaden van grote bestanden (>2MB) standaard niet toelaten. Hier laten we je zien hoe je eventueel je PHP instellingen kan configureren om grote bestanden te kunnen uploaden.
De Theorie
php.ini
De php.ini file bevat alle configuratie instellingen voor de server. Soms (meestal niet) is het mogelijk om deze instellingen te overschrijven middels een .htaccess bestand.
We concentreren ons eerst even op de php.ini. Dit bestand bevat onder andere de volgende instellingen die we nodig hebben om aan te passen:
* file_uploads * upload_max_filesize * max_input_time * memory_limit * max_execution_time * post_max_size
De eerste optie zorgt ervoor of bestanden überhaupt geupload kunnen worden (on/off switch). De overige instellingen staan hieronder.
upload_max_filesize and post_max_size
Bestanden worden gewoonlijk gepost door de webserver in een format bekend als 'multipart/form-data'. Het bovenlimiet van de data die het script kan accepteren wordt bepaald door de `post_max_size`. Ideaal gezien zou deze waarde groter moeten zijn dan de waarde die je insteld voor `upload_max_filesize`.
Het is van belang te realizeren dat `upload_max_filesize` de som is van alle bestanden die je in 1 keer upload. `post_max_size` is de upload_max_filesize + de som van de lengte van alle andere velden in het formulier + mime headers die de encoder eventueel bevat. Aangezien deze velden over het algemeen erg klein zijn kun je de `upload max size` de `post max size` laten benaderen.
Volgens de PHP documentatie kun je een MAX_UPLOAD_LIMIT in je HTML instellen om een limiet voor de browser in te stellen. Onze ervaring is echter dat browsers deze instellingen compleet negeren...
memory_limit
Wanneer de PHP engine een binnenkomende POST gaat behandelen moet het een deel van de binnenkomende data in het geheugen bewaren. Deze instellingen hebben alleen effect als je gebruik maakt van de --enable-memory-limit optie in de configuratie. De memory limit te hoog instellen can erg gevaarlijk zijn omdat al het beschikbare geheugen gebruikt zal worden voor uploads waarvan er wellicht meerdere tegelijk plaatsvinden. Andere afzonderlijke scripts die veel geheugen gebruiken kunnen hierdoor aangetast worden waardoor de hele server instabiel kan worden.
max_execution_time and max_input_time
Deze instellingen definiëren de maximale tijd van het script en de tijd dat een script en de input tijd die een script kan accepteren. Als vele MB's geupload gaan worden moet de max_input_time redelijk hoog staan. Je kan de instellingen in de ini file voor de max_input_time overschrijven door de set_time_limit() functie op te roepen in je scripts.
Speciale Notities
Apache Instellingen
De apache webserver heeft een LimitRequestBody configuratie directive die de omvang van alle POST data beperkt, ongeacht de we scriptingtaal die gebruikt wordt. Sommige RPM installaties zetten de limit request body op 512 Kb. Dit moet aangepast worden naar een grotere waarden of helemaal verwijderd worden.
Bovenstaande info hebben we met toestemming overgenomen en vertaald van MamboDOCMan.
De Praktijk
Aanpassen/Aanmaken php.ini:
Pas de volgende waarden aan in je php.ini. Heb je sharedhosting dan heb je meestal niet niet de mogelijk om het bestand php.ini aan te passen. Bij sommige webhosters kun je vaak ook gewoon een php.ini aanmaken (gewoon een tekstbestand dat je php.ini noemt) en daarin plak je dan de volgende regels:
register_globals = On register_argc_argv = On memory_limit = 10M track_errors = On upload_max_filesize = 10M
Vraag aan je hosting provider waar je dit bestandje kan plaatsen.
Aanpassen .htaccess:
Het bestandje .htaccess kun je vinden in je Joomla! installatiemap. Het kan zijn dat het daar nog staat als htaccess.txt, dan moet je het nog even hernoemen. Open de .htaccess en voeg dit aan het begin toe: <IfModule mod_php4.c> upload_max_filesize 20M php_value post_max_size 20M </IfModule>
Tegenwoordig zullen de meeste webhosters NIET toe laten dat je door middel van een .htaccess bestand de server settings kan veranderen. Als je aanpassingen nodig heeft en het lukt je niet met de hier boven genoemde optie dan kan je het beste even contact opnemen met je webhoster.

