Przepraszam, jeśli jest to duplikat, pomyślałbym, że tak, ale nic nie można znaleźć.
Mam aplikację elastyczną, która wysyłam dane z powrotem do serwera php / mysql za pośrednictwem IE. Nie napotkałem jeszcze żadnych problemów, ale wiedza o tym z wyprzedzeniem może uratować mnie od frustracji i pracy. Czy istnieje limit rozmiaru wysyłania danych przez http?
W tym artykule jest napisane nie: http://www.netlobo.com/ie_form_submit.html
Ta dyskusja mówi tak: http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method
A wszystko idzie tam iz powrotem, co mogę znaleźć w Internecie. Prosimy więc ograniczyć odpowiedzi do osobiście przetestowanych / zweryfikowanych numerów.
Chcę przesłać z powrotem ciąg XML, który może być dość duży (powiedzmy do 5 MB).
Jeśli robi to jakąkolwiek różnicę: przeglądarką zawsze będzie IE (wymaga tego nasz produkt), poczta pochodzi i httpService w wersji flex, serwer WWW to php, DB to mySql.
źródło
Odpowiedzi:
To zależy od konfiguracji serwera. Jeśli pracujesz z PHP pod Linuksem lub podobnym, możesz kontrolować go za pomocą pliku konfiguracyjnego .htaccess, tak jak:
I tak, mogę osobiście potwierdzić, że to działa :)
Jeśli używasz usług IIS, nie mam pojęcia, jak ustawić tę konkretną wartość.
źródło
post_max_size
ustawienie? Jestem raczej nowy w php i nie mogę go znaleźć nigdzie w naszej bazie kodu (używając procesu znajdowania snów we wszystkich). Zapytałbym naszych administratorów systemu, ale są wredni. :-PCzęść adresu URL żądania (GET i POST) może być ograniczona zarówno przez przeglądarkę, jak i serwer - ogólnie bezpieczny rozmiar to 2 KB, ponieważ prawie nie ma przeglądarek ani serwerów, które używają mniejszego limitu.
Treść żądania (POST) jest zwykle * ograniczona przez serwer w oparciu o rozmiar bajtu, aby zapobiec typowi ataku DoS (należy pamiętać, że oznacza to, że ucieczka znaków może zwiększyć rozmiar bajtu ciała). Najczęstszym ustawieniem serwera jest 10 MB, chociaż wszystkie popularne serwery pozwalają go zwiększać lub zmniejszać za pomocą pliku ustawień lub panelu.
* Istnieją pewne wyjątki od starszych przeglądarek telefonów komórkowych lub innych małych urządzeń - w takich przypadkach jest to bardziej funkcja miejsca na stercie zarezerwowana do tego celu na urządzeniu niż cokolwiek innego.
źródło
curl
Ponadto w pliku PHP.INI znajduje się ustawienie:
która w mojej wersji PHP: 5.4.16 domyślnie wynosi 1000.
Z instrukcji: „Ile zmiennych wejściowych można zaakceptować (limit jest stosowany do superglobali $ _GET, $ _POST i $ _COOKIE oddzielnie)”
Ref .: http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars
źródło
Możesz opublikować dużą ilość danych, ustawiając zmienną php.ini:
max_input_vars
Domyślny rozmiar tej zmiennej to 1000, ale jeśli chcesz wysłać dużą ilość danych, musisz odpowiednio zwiększyć rozmiar. Jeśli nie możesz ustawić rozmiaru z ini_set, musisz to zrobić bezpośredniohtaccess
lub poprzez zmiany w pliku php.ini.źródło
Jak zauważył David, w większości przypadków wybrałbym KB.
Uwaga: mój formularz jest prosty, tylko kilka pól tekstowych, a nie długi tekst.
źródło
Domyślnie maksymalny rozmiar żądania wysyłania wynosi 8 MB. Ale możesz go zmodyfikować zgodnie ze swoimi wymaganiami. Modyfikacji można dokonać, otwierając plik php.ini (ustawienie konfiguracji php).
Odnaleźć
wymień 8 zgodnie z Twoimi wymaganiami.
źródło
To serwer http decyduje, czy istnieje limit. Produkt, nad którym pracuję, pozwala administratorowi skonfigurować limit.
źródło
Jednym z najlepszych rozwiązań w tym zakresie jest to, że nie używasz wielu lub więcej niż 1000 pól wprowadzania. Możesz połączyć wiele danych wejściowych z dowolnym znakiem specjalnym, np.
@
.Zobacz:
Za pomocą dowolnego skryptu (JavaScript lub JScript),
Dzięki temu obejdziesz
max_input_vars
problem. Zwiększeniemax_input_vars
pliku php.ini jest szkodliwe dla serwera, ponieważ zużywa więcej pamięci podręcznej serwera, co czasami może spowodować awarię serwera.źródło
max_input_vars
opcję wphp.ini
tym. Nie do końca to, o co pytano, ale wciąż przydatne.Dla programistów, którzy nie mogą zmienić konfiguracji php z powodu hostingu. (Moje ustawienia Maksymalny rozmiar 256 MB, maks. 1000 zmiennych)
Mam ten sam problem, że tylko 2 z 5 dużych obiektów danych (tablice asocjacyjne) z podstrukturami otrzymano po stronie serwera.
Dowiaduję się, że cała konstrukcja jest „spłaszczona” w żądaniu postu. Tak więc jeden obiekt staje się setkami zmiennych dosłownych. Na koniec, zamiast 5 zmiennych obiektowych, w rzeczywistości wysyła dziesiątki setek zmiennych elementarnych.
Rozwiązaniem w tym przypadku jest serializacja każdej z podstruktur w łańcuch. Następnie jest odbierany na serwerze jako 5 zmiennych łańcuchowych. Przykład:
{variable1:JSON.stringify(myDataObject1),variable2:JSON.stringify(myDataObject2)...}
źródło