Używam PHP 5.3.0 i napotkałem coś, co może być błędem (w takim przypadku to zgłoszę) lub może nim być ja - więc proszę się upewnić.
Podczas uruchamiania tego kodu:
<?php
ini_set('upload_max_filesize', '10M');
echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size')
Skończyłem z:
2M, 8M
Dzieje się tak pomimo ustawienia mojego php.ini wyżej:
upload_max_filesize = 10M
post_max_size = 10M
(występujące tylko raz)
Ponieważ błąd występuje zarówno po ustawieniu wartości, jak i po ustawieniu jej w php.ini, jestem skłonny myśleć, że to błąd. Czy ktoś może potwierdzić lub wskazać mi, gdzie idę źle?
Aktualizacja : Wygląda na to, że ponowne uruchomienie Apache naprawiło to - zawsze myślałem, że nie trzeba go ponownie uruchamiać, jeśli zmienisz php.ini.
Odpowiedzi:
Nie możesz używać notacji skróconej do ustawiania wartości konfiguracyjnych poza PHP.ini. Zakładam, że spada do 2 MB jako skompilowanej wartości domyślnej w obliczu złej wartości.
Z drugiej strony nie sądzę, aby
upload_max_filesize
można było ustawić za pomocąini_set()
. „Oficjalny” lista wskazuje, że jestPHP_INI_PERDIR
.źródło
.htaccess
a także zini_set
. Może jednak nie we wszystkich wersjach.Czy korzystasz z dostawcy hostingu współdzielonego? Mogą to być ustawienia główne zastępujące wszystko, co próbujesz zmienić. Czy próbowałeś dodać je do swojego .htaccess?
php_value upload_max_filesize 10M php_value post_max_size 10M
źródło
php.ini
pliku. Umożliwia ustawienie tych uprawnień w oparciu o potrzeby, a nie jako ustawienie globalne.Ponieważ właśnie natknąłem się na ten problem na współdzielonym hoście i nie mogłem dodać wartości do mojego pliku .htaccess, pomyślałem, że udostępnię swoje rozwiązanie.
Zrobiłem plik ini z wartościami w nim. Proste:
Utwórz plik o nazwie „.user.ini” i dodaj swoje wartości
upload_max_filesize = 150M post_max_size = 150M
Bum, problem rozwiązany.
źródło
Mam to do pracy przy użyciu pliku .user.ini w tym samym katalogu co mój skrypt index.php, który ładuje moją aplikację. Oto zawartość:
upload_max_filesize = "20M" post_max_size = "25M"
Jest to zalecane rozwiązanie dla Heroku.
źródło
Można to również kontrolować za pomocą konfiguracji Apache. Sprawdź httpd.conf i / lub .htaccess pod kątem czegoś podobnego do następującego:
php_value upload_max_filesize 10M
źródło
Jeśli pracujesz na serwerze lokalnym, takim jak wamp lub xampp, upewnij się, że używa on pliku php.ini, o którym myślisz. Te serwery zwykle domyślnie używają pliku php.ini, którego nie ma w folderze dokumentów html.
źródło
To rozwiązanie można zastosować tylko wtedy, gdy problem dotyczy instalacji WordPress!
Jeśli nie masz dostępu do FTP lub jesteś zbyt leniwy, aby edytować pliki,
Możesz użyć wtyczki Zwiększ maksymalny rozmiar przesyłanego pliku, aby zwiększyć maksymalny rozmiar przesyłanego pliku.
źródło
Domyślnie PHP pozwala na załadowanie maksymalnie 2 MB pliku na serwer. Ale możesz zmodyfikować maksymalny rozmiar przesyłanego pliku zgodnie ze swoim stanem. Używając pliku konfiguracyjnego PHP php.ini, możesz zwiększyć lub zmniejszyć rozmiar wysyłanego pliku w PHP.
Najpierw otwórz plik php.ini w edytorze tekstu. Przeszukaj zmienną upload_max_filesize i określ rozmiar, który chcesz zwiększyć.
Wyszukaj zmienną post_max_size i określ rozmiar, który chcesz zwiększyć.
post_max_size = 128M
możesz to sprawdzić tutaj
źródło
jeśli używasz ini_set w locie, znajdziesz tutaj http://php.net/manual/en/ini.core.php informację, że np. upload_max_filesize i post_max_size nie mogą być zmieniane w locie (PHP_INI_PERDIR).
Jedynie zmiana konfiguracji php.ini, .htaccess lub vhost wydaje się zmieniać te zmienne.
źródło
Napotkałem ten sam problem, ale odkryłem, że nie wszystkie ustawienia konfiguracyjne można ustawić za pomocą funkcji ini_set (), sprawdź to Gdzie można ustawić ustawienie konfiguracji
źródło
Możesz użyć również w pliku php w ten sposób
<?php ini_set('upload_max_filesize', '200M'); ?>
źródło