Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Upload dużych plików
Forum PHP.pl > Forum > Przedszkole
gilbo
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):

  1. <?php
  2. if(isset($_FILES['foto'])){
  3. if($_FILES['foto']['size']==0){
  4. echo 'Nie został przesłany żaden plik!';
  5. }
  6. ?>


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
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
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źsmile.gif
kossa
http://pl2.php.net/manual/en/function.ini-set.php

Łukasz
gilbo
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
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
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
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
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
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.