Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - ładowanie pliku
Forum PHP.pl > Forum > Przedszkole
przemysuaw
Witam.

Mam problem z komunikatem o błędnym rozmiarze pliku.
Jak wysyłam plik mniejszy niż 20 MB to wszystko działa, ale jak próbuje wysłać plik większy niż 20 MB, to nic się nie dzieje. Nie ma żadnego komuniakatu o błędzie.
W php.ini mam ustawione na 20 MB: post_max_size, upload_max_filesize,

Co zrobić, by podczas próby załadowania pliku większego niż 20 MB wyskoczył komunikat o zbyt dużym pliku, a nie czyścił się formularz bez żadnego komentarza? smile.gif.


  1. <?php # Skrypt formularz_kontaktowy.php
  2. require_once('../config.inc.php');
  3. require_once('../mysqli_connect.php');
  4. $max_rozmiar=20971520;
  5. if(isset($_POST['submitted'])) {
  6. //Sprawdzana załącznik
  7. if (is_uploaded_file($_FILES['zalacznik']['tmp_name'])){
  8. $rozmiar_zal=$_FILES['zalacznik']['size'];
  9. echo'Rozmiar pliku '.$rozmiar_zal;
  10. if ($rozmiar_zal > $max_rozmiar ) {
  11. $errors[]='Błąd! Maksymalny rozmiar załącznika może wynieść 20 MB';
  12. } else {
  13. //Tworzy tymczasową nazwę pliku
  14. $temp='../uploads/'.md5($_FILES['zalacznik']['name']);
  15. if(move_uploaded_file($_FILES['zalacznik']['tmp_name'],$temp)) {
  16. echo'<p> Plik został załadowany</p>';
  17. //zmienna $zal przechowuje nazwę obrazka
  18. $zal=$_FILES['zalacznik']['name'];
  19. } else {
  20. $errors[]='Nie udało się przenieść pliku.';
  21. $temp=$_FILES['zalacznik']['tmp_name'];
  22. }
  23. }// Koniec insrukcji z maksymalnym rozmiarem załącznika
  24. } else { //Nie załadowano pliku
  25. $temp=NULL;
  26. $errors[]='Nie załadowano pliku';
  27. }
  28. }//Kończy warunek wysyłania
  29.  
  30. ?>
  31. <form enctype="multipart/form-data" action="test.php" method="post">
  32. <input type="hidden" name="MAX_FILE_SIZE" value="20971520"/>
  33. <fieldset><legend>Załaduj plik</legend>
  34. <p><b>PLIK: </b> <input type="file" name="zalacznik"/></p>
  35. </fieldset>
  36. <div align="center"><input type="submit" name="submit" value="Załaduj" /></div>
  37. <input type="hidden" name="submitted" value="TRUE" />
  38. </form>
Michael2318
Też miałem taki problem kiedyś. PHP jest w stanie sprawdzić stan pliku dopiero po tym jak go zauploadujesz. Takie coś lepiej sprawdzać od strony javascript/jquery i wypluwać błędy od razu po wybraniu przez użytkownika pliku.
Zobacz np. to: http://stackoverflow.com/questions/1601455...ize-with-jquery
przemysuaw
Domyślałem się, że będę musiał poznać w końcu javę i jquery, ale nie wiedziałem, że tak szybko smile.gif.
Może jednak da się to jakoś zrobic za pomocą tylko php?
Michael2318
Raczej nie. Prosty przykład: http://speedyshare.com/
Wrzucasz coś i z automatu Ci wyskakuje ile to coś waży.
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.