Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Filesize, Błąd przy porównywaniu rozmiarów
felixk
post 25.12.2009, 12:57:20
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 1
Dołączył: 31.01.2009
Skąd: Ostrołęka

Ostrzeżenie: (0%)
-----


Witam, kolejny problem z formularzem (ale już chyba ostatni). Chce zrobić porównanie wielkości pliku i w zależności albo komunikat albo plik zostaje na serwerze. Oto co napisałem do tej pory:

  1.  
  2. $max = 512000;
  3. $rozmiar = filesize("$upload_dir$file_name"); //linijka nr 60
  4. echo $rozmiar;
  5. if ($rozmiar > $max)
  6. {
  7. echo "Plik za duży";
  8. }
  9.  

Dodam, że plik się nie ładuje.

a oto treść błędu, który występuje:

Warning: filesize() [function.filesize]: stat failed for upload_files/splyw_08.2009_074.jpg in /home/c/h/o/chojnowski/www/test/index.php on line 60


  1.  
  2. <?php
  3.  
  4. $site_name = $_SERVER['HTTP_HOST'];
  5. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  6. $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  7.  
  8. $upload_dir = "upload_files/";
  9. $upload_url = $url_dir."/upload_files/";
  10. $message ="";
  11. $allow = array("jpg", "jpeg", "gif", "png", "bmp");
  12.  
  13. //create upload_files directory if not exist
  14. //If it does not work, create on your own and change permission.
  15. if (!is_dir("upload_files")) {
  16. die ("Folder nie istnieje");
  17. }
  18.  
  19. if ($_FILES['userfile']) {
  20. $message = do_upload($upload_dir, $upload_url);
  21. }
  22.  
  23. print $message;
  24.  
  25.  
  26.  
  27. function do_upload($upload_dir, $upload_url) {
  28. global $allow;
  29.  
  30. $temp_name = $_FILES['userfile']['tmp_name'];
  31. $file_name = $_FILES['userfile']['name'];
  32.  
  33. $rozszerzenie_pliku = substr( $file_name, strrpos( $file_name, '.' ) +1 );
  34.  
  35. $file_name = strtolower($file_name);
  36. $file_name = str_replace("ż","z",$file_name);
  37. $file_name = str_replace("ą","a",$file_name);
  38. $file_name = str_replace("Ľ","z",$file_name);
  39. $file_name = str_replace("ę","e",$file_name);
  40. $file_name = str_replace("ł","l",$file_name);
  41. $file_name = str_replace("Ł","l",$file_name);
  42. $file_name = str_replace("ś","s",$file_name);
  43. $file_name = str_replace("ń","n",$file_name);
  44. $file_name = str_replace("ć","c",$file_name);
  45. $file_name = str_replace("ó","o",$file_name);
  46. $file_name = str_replace(" ", "_",$file_name);
  47.  
  48. $file_type = $_FILES['userfile']['type'];
  49. $file_size = $_FILES['userfile']['size'];
  50. $result = $_FILES['userfile']['error'];
  51. $file_url = $upload_url.$file_name;
  52. $file_path = $upload_dir.$file_name;
  53.  
  54. //File Name Check
  55. if ( $file_name =="") {
  56. echo "<script language=\"javascript\">alert('Brak nazwy pliku.')</script>";
  57. }
  58.  
  59. // File Size check
  60. $max = 512000;
  61. $rozmiar = filesize("$upload_dir$file_name");
  62. echo $rozmiar;
  63. if ($rozmiar > $max)
  64. {
  65. echo "Plik za duży";
  66. }
  67.  
  68. //File Type Check
  69. if (in_array($rozszerzenie_pliku, $allow))
  70. {
  71. $result = move_uploaded_file($temp_name, $file_path);
  72. echo "<a href=$file_url>$file_url</a>";
  73. }
  74. else
  75. {
  76. echo "<script language=\"javascript\">alert('Dozwolone tylko pliki graficzne')</script>";
  77. }
  78.  
  79. }
  80.  
  81. echo ' <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
  82. Obrazek <input type="file" id="userfile" name="userfile">
  83. <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
  84. <input type="submit" name="upload" value="Załaduj">
  85. </form> ';
  86.  
  87. ?>
  88.  

Powyżej pełny kod skryptu. Drugim problemem jest to, że nie wiem jak połączyć wynik sprawdzenia rozmiaru z tym, żeby upload dokonywał się po uzyskiwaniu poprawnego rozmiaru.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie
- felixk   [php]Filesize   25.12.2009, 12:57:20
- - wookieb   Przed filesize użyj http://pl2.php.net/clearstatca...   25.12.2009, 13:19:20
|- - felixk   Cytat(wookieb @ 25.12.2009, 13:19:20 ...   25.12.2009, 13:33:04
- - Lion_87   [PHP] pobierz, plaintext $rozmiar = filesize...   25.12.2009, 13:43:25
|- - felixk   Cytat(Lion_87 @ 25.12.2009, 13:43:25 ...   25.12.2009, 13:44:21
- - Lion_87   to może kropka pomiędzy? ...   25.12.2009, 13:48:30
|- - felixk   Cytat(Lion_87 @ 25.12.2009, 13:48:30 ...   25.12.2009, 13:50:30
- - Lion_87   a po co tak z ciekawosci CI ten filesize? nie wys...   25.12.2009, 13:57:13
- - darko   W miejsce zmiennej $rozmiar użyć zdefiniowane...   25.12.2009, 13:57:24
|- - felixk   Cytat(darko @ 25.12.2009, 13:57:24 ) ...   25.12.2009, 14:10:15
- - darko   Co zwraca wartość 0 ? Pokaż kod po zmianach, jeśli...   25.12.2009, 14:18:59
|- - felixk   Cytat(darko @ 25.12.2009, 14:18:59 ) ...   25.12.2009, 14:20:18
- - darko   Wywal clearstatcache   25.12.2009, 14:22:43
|- - felixk   Cytat(darko @ 25.12.2009, 14:22:43 ) ...   25.12.2009, 14:27:42
- - darko   to jeszcze w do_upload daj global $upload_url...   25.12.2009, 14:32:00
|- - felixk   Cytat(darko @ 25.12.2009, 14:32:00 ) ...   25.12.2009, 14:37:09
- - darko   Czy na pewno miejsce docelowe dla plików to: ...   25.12.2009, 14:46:06
|- - felixk   Cytat(darko @ 25.12.2009, 14:46:06 ) ...   25.12.2009, 14:52:31
|- - felixk   Cytat(felixk @ 25.12.2009, 14:52:31 )...   25.12.2009, 15:03:26
- - darko   Duże nie chcą się uploadować, bo pewnie przekracza...   25.12.2009, 15:00:13
- - darko   Sam siebie cytujesz   27.12.2009, 04:48:19


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:41