Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload nie działa dla dużych plików. Jak to zrobić
Forum PHP.pl > Forum > Przedszkole
Gość_Rafał
Witam,

1. Zrobiłem formularz do wysyłania plików graficznych na serwer i wszystko działa bez zarzutu. Chcę również wysyłać pliki binarne przy pomocy podobnego formularza i tu natrafiam na problem. Zauważyłem, że pliki powyżej 2 Mb nie zapisują się na serwerze, są transferowane to widać ale nie następuje ich finalny zapis w docelowym katalogu na serwerze. Nigdzie nie wyczytałem, że jest jakieś ograniczenie w wielkości przesyłanych przez formularz plików. Pomijam MAX_FILE_SIZE, który mam nieustawiony bo nie jest mi do niczego potrzebny - ja nie chcę ograniczać wielkości, wręcz przeciwnie ja chcę wysyłać pliki o rozmiarach do 5MB.

2. Próbowałem też ftp ale tutaj znowu pojawia się problem przy instrukcji ftp_put. Nie można przesłać pliku, tak jakby php nie potrafił rozpoznać ścieżki lokalnej do pliku. Ponizej fragment tego kodu:

  1. <?php
  2.  
  3. $remote = '/public_html/download/code_strukture.png';
  4. $local = &#092;"D:Moje dokumentysetup.exe\";
  5. $local = str_replace(&#092;"\", \"\", $local);
  6. $local = fopen(&#092;"$local\", \"rb\");
  7.  
  8. $c = ftp_connect('ftp.domena.com') or die(&#092;"Nie mogę się połączyć\");
  9. ftp_login($c, login, hasło) or die(&#092;"Nie mogę się zalogować\");
  10. ftp_put($c,$remote, $local, FTP_BINARY) or die(&#092;"Nie mogę przesłać pliku\"); 
  11. ftp_close($c) or die(&#092;"Nie mogę zamknąć\");
  12.  
  13. ?>


W wierszu 5 funkcji str_replace drugi parametr winien być "\\\\".
Proszę o pomoc (system lokalny to Windows).

Rafał
dr_bonzo
w php.ini:
upload_max_filesize = 2M


"D:\Moje dokumenty\setup.exe"

1. jesli backslashe ( \ ) dzialaja w php to musisz je tak zapisac: "D:\\Moje dokumenty\\setup.exe", 'D:\Moje dokumenty\setup.exe'

2. uzywaj slashy ( / )
Gość_Rafał
Zrobiłem tak:
  1. <?php
  2.  
  3. $remote = '/public_html/download/setup.exe';
  4. $local = 'D:Instalkitestsetup.exe';
  5. $local = str_replace(&#092;"\", \"/\", $local);
  6.  
  7. $c = ftp_connect('ftp.domena.com') or die(&#092;"Nie mogę się połączyć\");
  8. ftp_login($c, 'login', 'hasło') or die(&#092;"Nie mogę się zalogować\");
  9. ftp_put($c,$remote, $local, FTP_BINARY) or die(&#092;"Nie mogę przesłać pliku\");
  10. ftp_close($c) or die(&#092;"Nie mogę zamknąć\");
  11.  
  12. ?>


Przy pliku poniżej 200 KB jest wporządku ale przy większym chwilę przesyła i otrzymuję w przeglądarce komunikat "Error 500". Co może być tego przyczyną?
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.