Zmień maksymalny rozmiar wysyłanego pliku

Mam stronę internetową hostowaną na komputerze, do którego nie mam dostępu. Mam formularz uploadu pozwalający na wgrywanie plików mp3 o wielkości do 30MB. Mój skrypt po stronie serwera jest wykonywany w PHP.

Za każdym razem, gdy próbuję przesłać plik, pojawia się błąd twierdzący, że plik przekracza maksymalny dozwolony rozmiar, więc muszę go zwiększyć. Moje badania w Internecie sugerowały zmianę pliku .htaccess, do którego nie mam dostępu, więc to nie zadziała. Inni sugerowali, że powinienem dodać własny plik php.ini do mojego korzeń, który nie zadziałał. Jakieś inne sugestie?

 417
php
Author: Paolo Forgia, 2010-02-02

14 answers

Musisz ustawić wartość upload_max_filesize i post_max_size w php.ini:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

Po modyfikacji php.pliki ini, musisz ponownie uruchomić serwer HTTP, aby użyć nowej konfiguracji.

Jeśli nie możesz zmienić swojego php.ini, nie masz szczęścia. Nie można zmienić tych wartości w czasie wykonywania; Przesyłanie pliku jest większe niż wartość podana w php.ini nie powiedzie się do czasu wykonania połączenia do ini_set.

Zobacz opis core php.dyrektywy ini .

 735
Author: meagar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-13 13:19:51

Możesz go zmienić za pomocą pliku .htaccess.

.htaccess pliki są przechowywane w tym samym katalogu co Pliki .php. Modyfikują konfigurację dla tego folderu i wszystkich podfolderów. Po prostu ich używasz, tworząc plik .htaccess w wybranym katalogu(lub modyfikując go, jeśli istnieje).

Poniższe informacje powinny umożliwić zwiększenie limitu wysyłania (jeśli dostawca serwera zezwala na zmiany konfiguracji PHP przez .htaccess).

php_value upload_max_filesize 40M
php_value post_max_size 42M
 123
Author: Andrew Moore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-02 16:05:08

Miałem ten sam problem i stworzyłem .użytkownik.plik ini i umieść go w katalogu, w którym znajdował się skrypt uploadu. Niż w tym pliku ustawiłem te dwie wartości:

  upload_max_filesize = 40M

  post_max_size = 40M

I zadziałało świetnie dla mnie!

 53
Author: user1641252,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 03:08:01

Możesz również użyć funkcji ini_set (tylko dla wersji PHP poniżej 5.3):

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

Jak powiedział @acme, w php 5.3 i wyżej te ustawienia są dyrektywami PHP_INI_PERDIR, więc nie można ich ustawić za pomocą ini_set. Możesz użyć użytkownika.ini zamiast.

 46
Author: Balder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-06 14:24:15

Aby zlokalizować plik ini, najpierw uruchom

php -i | grep -i "loaded configuration file"

Następnie otwórz plik i zmień

upload_max_filesize = 2M
post_max_size = 2M

Zastąpienie 2M żądanym rozmiarem, na przykład 100M.

Mam wpis na blogu o trochę więcej informacji http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress

 38
Author: seanb123,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-03 08:43:50

Mam ten sam problem w przeszłości .. i naprawiłem to przez .htaccess Plik

Kiedy dokonujesz zmiany w konfiguracji php poprzez .htaccess powinieneś umieścić configrations w IfModule tag, inny, że wewnętrzny błąd serwera powstanie.

To jest przykład, dla mnie działa dobrze:

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>

I to jest odniesienie do php, jeśli chcesz zrozumieć więcej. http://php.net/manual/en/configuration.changes.php

 35
Author: Eyad Farra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-30 06:57:55

Rozwiązałem ten problem, tworząc plik o nazwie .user.ini w katalogu, w którym znajdują się Skrypty plików PHP (oznacza to, że każdy skrypt PHP w tym katalogu otrzymuje nowy limit rozmiaru pliku)

Zawartość .user.ini to:

upload_max_filesize = 40M
post_max_size = 40M
 11
Author: Pearce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-15 20:21:50

Chciałbym dodać tu moje 2 centy.

Używam współdzielonego webhostingu i wielokrotnie rozwiązywałem ten problem, próbowałem go rozwiązać na własną rękę, ale bezskutecznie. W końcu udało mi się to rozwiązać poprzez sprawdzenie różnych źródeł internetowych i skontaktowanie się z moim dostawcą usług hostingowych. Moje pytania brzmiały: "jak Mogę zmienić wartość php memory_limit we współdzielonym webhostingu?", "Jak Mogę zmienić wartość php upload_max_filesize we współdzielonym webhostingu?", "Jak Mogę zmienić wartość php max_input_vars we współdzielonym webhostingu?", "Jak Mogę zmienić wartość php max_execution_time w współdzielonym webhostingu?", "Jak Mogę zmienić wartość php max_input_time we współdzielonym webhostingu?"i wiele innych poprzez konfigurację lub zmianę php.plik ini lub .htaccess. Próbowałem je zmienić, ale pojawiły się problemy. W końcu skontaktowałem się z moim dostawcą hostingu i okazało się, że ustawiłem moje php na natywne, zmienili go na php 5.6, oto ich odpowiedź: {]}

"Twój PHP został ustawiony na' natywny ' tryb, co oznacza, że nie możesz nadpisać te wartości. Zmieniłem Cię na ' 5.6 ' więc powinieneś być dobry na idź."

Po tym podłączyłem moją stronę przez ftp Filezilla, również nie zapomnij zrobić zarówno usługi ftp, aby pokazać ukryte pliki, jak i lokalnego komputera, aby to zrobić, ponieważ .htaccess plik był ukryty w moim lokalnym laptopie i na mojej stronie internetowej. Był on dostępny w folderze public_html, po prostu go ściągnąłem i dodałem następujące kody na końcu pliku, a następnie przesłałem go z powrotem na serwer:

php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Na razie wszystko działa poprawnie, jeśli ktoś z Was ma jakieś problemy proszę pisać tutaj i ostrzegać mnie abym mógł zmienić powyższe kody. Nawiasem mówiąc, wrzucam również kilka zdjęć, które pokazują zmianę.

Jeszcze jedno, prawie zapomniałem wspomnieć o instalacji ZipArchive na współdzielonym usługa webhosting, udało mi się to wymaganie zaznaczyć, przechodząc do ustawień php za pośrednictwem mojego cpanel, kliknij na PHP selector extensions, a następnie zaznacz sekcję zip, to wszystko.

Dzięki.

PS: jestem otwarty na dobre praktyki, a jeśli zobaczysz jakieś złe praktyki tutaj proszę daj mi znać, postaram się je zmienić. Dzięki.

 3
Author: garakchy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-03 01:55:41

Miałem ten sam problem. Próbowałem trzech sposobów, które zwykle sugerowano:

  1. Funkcje.php
  2. php.ini
  3. .htaccess

Brak, jeśli to rozwiązało mój problem. Używam godaddy i natknąłem się na sugerowane rozwiązanie, które brzmiało:

  1. got to Web Hosting, then Manage
  2. Pod oprogramowanie wybierz wybierz wersję PHP
  3. Select Switch to PHP Options found on the top right narożnik tabeli w kolorze czcionki: Niebieski
  4. na dole prawdopodobnie będziesz miał upload_max_filesize = 2m
  5. Teraz możesz to zmienić.]}
  6. pamiętaj, aby kliknąć Zapisz!
  7. Teraz przejdź do panelu wp-admin, wybierz Media następnie dodaj

Voila! Teraz masz inny maksymalny rozmiar przesłanego pliku :)

 3
Author: nrmb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-05 16:31:25

Być może to powinien być komentarz do @ seanb123 i @ Fredrick Gauss komentując swój komentarz, ale dla mnie w Drupal 8.1 z PHP 7 plik, który musiałem zmodyfikować, znajdował się tutaj:

/etc/php/7.0/apache2/php.ini

Zmodyfikowałem prawdopodobnie cztery inne php.pliki ini, w tym ten, który mój system nazwał "załadowanym plikiem konfiguracyjnym" (php -i | grep -i "loaded configuration file") i ten, który znajduje się w info.strona php, ale żaden z nich nie pomógł. Klucz do odnalezienia właściwej ścieżki znalazł się na stronie z 2012 roku. Powiedzieli, że ścieżka "/etc/php5/apache2/php.ini" była przestarzała nawet Wtedy, ale to dało mi wskazówkę, gdzie go znaleźć. Dla PHP7 jest trochę inaczej niż w PHP5, ale koncepcja jest taka sama.

Może to pomoże jakimś bezradnym dupkom, takim jak ja.

To powiedziawszy, odpowiedź na OP w moim przypadku byłaby taka, że ktoś z uprawnieniami administratora na skrzynce musiałby to zrobić.

Strona, która mi pomogła: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

Jest to również adresowane tutaj: Importuj limit rozmiaru pliku w PHPMyAdmin

Edytuj: pełny tekst mojej notki do siebie:

Aby zmienić maksymalny rozmiar uploadu, edytuj upload_max_filesize i [w razie potrzeby? w naszej ofercie znajdziecie Państwo:ini (lub w więcej informacji na stronie ini)

/ etc / init.d / apache2 restart

EDYTUJ PONOWNIE: ponieważ importujesz duże pliki, może być konieczna zmiana limitu czasu ich przetwarzania. W moim przypadku plik o nazwie " config.default.php " znaleziono w {[3] } ze zmienną $cfg['ExecTimeLimit'] = 300; Zmieniłem mój na 900 dla ogromnego importu, na przykład. Następnie musisz ponownie uruchomić apache

 2
Author: seizethecarp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-25 13:13:15

Żadne z tych rozwiązań nie działa dla mnie!! (domyślnie ustawione na 32m).Problem jest w większości przypadków max_allowed_packet

Pracuję nad localhost i używam MAMP.

Oto rozwiązania;

1. Jeśli nie masz my.ini

Dodaj

--max_allowed_packet=168435456

Do

...\MAMP\bin\startMysql.sh

2. Jeśli masz moje.ini

Pod

[mysqld]

Dodaj

max_allowed_packet=100M

Zrobione!

 1
Author: ErcanE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-08 15:26:57

Wiele razy zauważyłem, że witryna wit shared hosting nie pozwalają na zmianę ustawień w php.pliki ini. jeden również nie może nawet skrzyni .plik htaaccess w ogóle. w takiej sytuacji można spróbować następujących rzeczy

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
 1
Author: The EasyLearn Academy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-30 08:31:55

Trzy rzeczy, które musisz sprawdzić.

upload_max_filesize, memory_limit i post_max_size w php.dokładnie plik konfiguracyjny ini.

Wszystkie te trzy ustawienia ograniczają maksymalny rozmiar danych, które mogą być przesyłane i obsługiwane przez PHP.

Zazwyczaj post_max_size i memory_limit muszą być większe niż upload_max_filesize.


Więc trzy zmienne razem musisz sprawdzić, aby mieć całkowitą pewność.

 0
Author: prosti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-23 20:07:58

Odpowiedzi są trochę niekompletne, 3 rzeczy, które musisz zrobić

W php.ini instalacji php (uwaga: w zależności od tego, czy chcesz go dla CLI, apache lub nginx, znajdź odpowiedni php.ini do manipulowania. W przypadku nginx zwykle znajduje się w /etc/php/7.1/fpm Gdzie 7.1 zależy od twojej wersji. Dla Apache zazwyczaj /etc/php/7.1/apache2)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

Lub ustawić inne wartości. Uruchom ponownie / przeładuj apache, jeśli masz zainstalowany apache lub php-fpm dla nginx, jeśli używasz nginx.

 0
Author: Toskan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-12 21:43:44