gilbo
5.08.2007, 20:27:11
Mam problem z uploadem dużych plików (konkretnie zdjęć).
Mam taki skrypcik (fragment przed którym znajduje się tylko session_start() i include configu):
<?php
if(isset($_FILES['foto'])){ if($_FILES['foto']['size']==0){
echo 'Nie został przesłany żaden plik!'; }
?>
I właśnie w tym miejscu się sypie... Zdjęcia jeszcze w rozmiarze 1280x960 dodają się normalnie, ale jak próbowałem 2816x1880 to już się nie chciało dodać, dokładnie wyświetlał się komunikat "Nie został przesłany żaden plik!"...
Próbowałem ustawić set_time_limit(), ale nie pomogło (dałem wartość 360 może to za mało?). Również error_reporting(E_ALL); nie wykazuje żadnych błędów. Co mogę zrobić? Proszę o pomoc!
Pozdrawiam
kossa
5.08.2007, 21:19:01
Sprawdź max rozmiar wysyłanego pliku: upload_max_filesize
Może masz jakieś ograniczenie w skrypcie, bo z tego co napisałeś to domyślam się że nie jest to Twój skrypt bo wklejasz najmniej przydatny fragent kodu...
Łukasz
gilbo
5.08.2007, 21:53:37
Skrypt jest mój. Wklejam fragment, na którym już wywala błąd. Tam jest exit; tak więc nic dalej nie jest istotne bo i tak nie jest wykonywane a przed tym fragmentem jak już napisałem jest tylko session_start(); i include z configiem.
Problem faktycznie wynika ze zbyt niskiej wartości upload_max_filesize, która jest ustawiona na 2M jak mogę to zmienić, nie mając dostępu do php.ini na hostingu?
Pozdrawiam i dziękuję za celną odpowiedź
kossa
5.08.2007, 22:32:17
gilbo
5.08.2007, 23:15:43
Niestety, nadal nie pomogło...
Wygląda na to, że nie mogę zmienić tej wartości, chociaż nie wiem czemu...
mam tak ustawione w ini:
max_execution_time 30
max_input_time 60
memory_limit 64M
post_max_size 8M
upload_max_filesize 2M
I tylko to 2M blokuje mi wysłanie większego pliku... Czy istnieje możliwość sprawdzenia czemu nie mogę zmienić wartości tego ustawienia?
Pozdrawiam Adam:)
Denver
6.08.2007, 08:42:56
ini_set() nie zadziała dla zmiennej "upload_max_filesize", gdyż w momencie, gdy ta funkcja się w skrypcie PHP wykonuje, plik w formularzu został już wysłany i, mówiąc krótko, jest już "po ptakach".
gilbo
6.08.2007, 14:52:44
To w takim razie jak mogę to rozwiązać? Właśnie doczytałem się w manualu, czego wcześniej nie zauważyłem, że można tą wartość zmienić w
Cytat
Entry can be set in php.ini, .htaccess or httpd.conf
Z tych trzech mam dostęp do .htaccess może mi ktoś powiedzieć jak to ustalić i do którego katalogu mam wrzućić .htaccess?
Pozdrawiam
Kicok
6.08.2007, 15:05:04
Kod
php_value upload_max_filesize 128M
A plik .htaccess wrzucasz do katalogu w którym masz skrypt PHP.
PS. Nie ręczę, że to będzie działać.
Cezar708
6.08.2007, 15:07:06
spróbuj:
Kod
php_admin_flag upload_max_filesize 6M
PS: Może to też nie zadziałać bo czasem apache ma problem ze zrozumieniem litery M w plikach .htaccess, więc bezpieczniej będzie jak wpiszesz liczbę w bajtach czyli:
6*1024*1024 =
Kod
php_admin_flag upload_max_filesize 6291456
Pozdrawiam
saladdin
6.08.2007, 15:14:52
A ja mam pytanie - skoro to moźzna tak zmieniać w htaccess to czy to znaczy że zawsze można, czy jednak administrator serwera może tą mozliwość zmiany wyłączyć?
gilbo
6.08.2007, 15:22:43
Wielkie dzięki za odpowiedzi, udało się!
@Kicok Twoja metoda zadziałała! Wielkie dzięki!
@saladdin Myślę, że admin serwera może wszystko;) U mnie naszczęście działa ale ja płacę (tzn nie ja ale płacą) za serwer 150zł/m-c
Pozdrawiam
JoShiMa
27.08.2012, 17:42:03
Nie wiem czy dobrze robię odświeżając wątek, ale co powiecie na sytuację taką, że upload_max_filesize jest ustawione z górką, czasy wykonywania też są odpowiednio długie a mimo wszystko plik się nie wczytuje?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.