Główna » jak » Jak zwiększyć limit wielkości wysyłania plików PHP

    Jak zwiększyć limit wielkości wysyłania plików PHP

    Jeśli masz aplikację sieciową, która przesyła pliki do serwera za pośrednictwem skryptu PHP, możesz zauważyć, że domyślnie nie możesz przesłać strasznie dużych plików. Oto jak to zmienić.

    Powód, dla którego limit jest ustawiony dość nisko domyślnie, jest ze względów stabilności i bezpieczeństwa - złośliwy skrypt lub osoba atakująca może próbować wykonać DoS swój serwer z dużymi plikami i tymczasowo zamknąć aplikację.

    Aby zmienić wartości, musisz edytować plik php.ini, zwykle znajdujący się w tej ścieżce pliku:

    /etc/php.ini

    Oto ustawienia, które chcesz zmienić:

    post_max_size
    To ustawienie steruje rozmiarem posta HTTP i musi być większe niż ustawienie upload_max_filesize.

    upload_max_filesize
    Ta wartość określa maksymalny rozmiar przesyłanego pliku.

    memory_limit
    Musisz się upewnić, że limit pamięci skryptu jest ustawiony na przyzwoity rozmiar, prawdopodobnie większy niż którykolwiek z pozostałych dwóch ustawień.

    Ustawianie zmiennych

    Możesz ustawić wartości, używając wartości numerycznych, a następnie M dla ilości MB, którą chcesz przydzielić dla każdej zmiennej. Na przykład, aby umożliwić przesłanie plików o wielkości 20 MB, można użyć czegoś takiego:

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

    Po wprowadzeniu tej zmiany konieczne będzie ponowne uruchomienie serwera Apache za pomocą następującego polecenia:

    /etc/init.d/httpd restart

    Ustawianie wielkości przesyłania na aplikację

    Możesz zmienić to ustawienie dla konkretnej aplikacji internetowej, umieszczając je w pliku .htaccess w katalogu aplikacji. Zauważ, że zadziała to tylko wtedy, gdy twój serwer włączył obsługę nadpisań dla twojego wirtualnego hosta lub serwera.

    Na przykład możesz umieścić w pliku:

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

    Po zapisaniu pliku zmiany powinny zostać zastosowane.