[PHP]Upload plików |
[PHP]Upload plików |
25.06.2013, 23:19:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Mam dziwny problem z uploadem plików.
Jeżeli wgrywam plik o troszkę większym rozmiarze niż MAX_FILE_SIZE (1MB) to prawidłowo zgłasza błąd UPLOAD_ERR_FORM_SIZE. Jeżeli natomiast wgrywam plik 11MB to nic się nie dzieje. Nic nie wyświetla nawet var_dump tablicy $_FILES, jakby w ogóle nic nie przechodziło przez formularz. Ktoś spotkał się z czymś takim? Albo może domyślać się o co chodzi? |
|
|
25.06.2013, 23:43:21
Post
#2
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 25 Dołączył: 10.08.2009 Ostrzeżenie: (0%) |
|
|
|
25.06.2013, 23:58:51
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Umieść w dowolnym miejscu skryptu: Zapewne wyskoczy wartość 8M, jest to maksymalna wartość jaką możesz wysłać postem więc musisz zmienić w php.ini lub .htaccess tą wartość. Tak pokazuje 8MB ale czy nie powinien wyskoczyć błąd UPLOAD_ERR_INI_SIZE ? |
|
|
26.06.2013, 00:03:39
Post
#4
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 25 Dołączył: 10.08.2009 Ostrzeżenie: (0%) |
UPLOAD_ERR_INI_SIZE pokazuję czy wrzucony plik przekroczył inną wartość: upload_max_filesize.
Aby wysłać prawidłowo plik post_max_size i upload_max_filesize muszą być większe niż wrzucany plik. |
|
|
26.06.2013, 07:13:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
UPLOAD_ERR_INI_SIZE pokazuję czy wrzucony plik przekroczył inną wartość: upload_max_filesize. Aby wysłać prawidłowo plik post_max_size i upload_max_filesize muszą być większe niż wrzucany plik. Zgadza się, ale chodzi mi o to, że jak załaduje większy plik to powinie wyskoczyć jeden z błędów (1 - UPLOAD_ERR_INI_SIZE, lub 2- UPLOAD_ERR_FORM_SIZE), a jak pisałem wcześniej, w przypadku pliku znacznie przekraczającego te ograniczenia nie pokazuje się żaden z wymienionych komunikatów o błędzie. |
|
|
26.06.2013, 08:24:38
Post
#6
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 25 Dołączył: 10.08.2009 Ostrzeżenie: (0%) |
Cytat UPLOAD_ERR_INI_SIZE Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. UPLOAD_ERR_FORM_SIZE Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form. 1. Twój plik nie przekroczył wartości upload_max_filesize. 2. MAX_FILE_SIZE to zabezpieczenie po stronie SERWERA a post_max_size jest po stronie klienta. Klient czyli Twoja(i innych) przeglądarka zabrania wysyłania większych danych przez formularz, dlatego po przekroczeniu wartości post_max_size nie wyskoczy Ci błąd MAX_FILE_SIZE! |
|
|
26.06.2013, 09:59:22
Post
#7
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
1. Twój plik nie przekroczył wartości upload_max_filesize. 2. MAX_FILE_SIZE to zabezpieczenie po stronie SERWERA a post_max_size jest po stronie klienta. Klient czyli Twoja(i innych) przeglądarka zabrania wysyłania większych danych przez formularz, dlatego po przekroczeniu wartości post_max_size nie wyskoczy Ci błąd MAX_FILE_SIZE! OK, to jak w takim razie to sprawdzić i wypisać odpowiedni komunikat w takim przypadku? |
|
|
26.06.2013, 11:12:12
Post
#8
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 25 Dołączył: 10.08.2009 Ostrzeżenie: (0%) |
Cytat If the size of post data is greater than post_max_size, the $_POST and $_FILES superglobals are empty. This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. <form action="edit.php?processed=1">, and then checking if $_GET['processed'] is set. Źródło: manual/en/ini.core.php#ini.enable-post-data-reading Możesz też skorzystać np. ze zmiennej $_SERVER['HTTP_REFERER'], jak napisali w manualu jest kilka sposobów aby to sprawdzić. Ten post edytował widmo_91 26.06.2013, 11:23:40 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.05.2024 - 17:08 |