Početna » kako da » Kako povećati ograničenje veličine datoteke za PHP

    Kako povećati ograničenje veličine datoteke za PHP

    Ako imate web-aplikaciju koja učitava datoteke na poslužitelj putem PHP skripte, možda ste primijetili da po defaultu ne možete prenijeti užasno velike datoteke. Evo kako to promijeniti.

    Razlog zbog kojeg je ograničenje zadano nisko postavljeno je zbog stabilnosti i sigurnosnih razloga - zlonamjerna skripta ili napadač mogu pokušati izvršiti DoS poslužitelj s velikim prijenosom datoteka i privremeno zatvoriti vašu aplikaciju.

    Da biste promijenili vrijednosti, trebat ćete urediti datoteku php.ini, koja se obično nalazi na tom putu datoteke:

    /etc/php.ini

    Evo postavki koje želite promijeniti:

    post_max_size
    Ova postavka kontrolira veličinu HTTP posta i mora biti postavljena veća od postavke upload_max_filesize.

    upload_max_filesize
    Ova vrijednost postavlja maksimalnu veličinu datoteke za prijenos.

    memory_limit
    Morat ćete se uvjeriti da je ograničenje memorije skripte postavljeno na pristojnu veličinu, vjerojatno veću od bilo koje druge dvije postavke.

    Postavljanje varijabli

    Vrijednosti možete postaviti pomoću brojčane vrijednosti nakon koje slijedi M za iznos MB koji želite dodijeliti za svaku varijablu. Na primjer, da biste omogućili prijenos 20 MB datoteka, upotrijebili biste nešto slično:

    memory_limit = 64M
    upload_max_filesize = 20M
    post_max_size = 25M

    Morat ćete ponovno pokrenuti svoj Apache poslužitelj nakon što izvršite ovu promjenu, pomoću ove naredbe:

    /etc/init.d/httpd restart

    Postavljanje veličine prijenosa po aplikaciji

    Ovu promjenu postavke možete napraviti za određenu web-aplikaciju stavljajući je u datoteku .htaccess, u direktorij aplikacije. Imajte na umu da će to raditi samo ako je vaš poslužitelj omogućio poništavanje za vaš virtualni host ili poslužitelj.

    Na primjer, u datoteku možete staviti sljedeće:

    php_value memory_limit = 64M
    php_value upload_max_filesize = 20M
    php_value post_max_size = 25M

    Nakon što spremite datoteku, promjene treba primijeniti.