Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z uploadem plikow
piciuuuu
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 26.04.2006

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


witam,
to niestety znowu ja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) z kolejnym problemem, tym razem robie do stronki upload, skorzystalem z gotowego dosc prostego skryptu, chcialem do niego dolozyc sprawdzanie czy uploadowany plik to gif jpg lub jpeg, oto plik:

  1. <?php
  2.  
  3. $site_name = $_SERVER['HTTP_HOST'];
  4. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  5. $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  6.  
  7. $upload_dir = "upload_files/";
  8. $upload_url = $url_dir."/upload_files/";
  9. $message ="";
  10.  
  11. //create upload_files directory if not exist
  12. //If it does not work, create on your own and change permission.
  13. if (!is_dir("upload_files")) {
  14. die ("upload_files directory doesn't exist");
  15. }
  16.  
  17. if ($_FILES['userfile']) {
  18. $message = do_upload($upload_dir, $upload_url);
  19. }
  20. else {
  21. $message = "Wybierz plik z komiksem który chciałbyś uploadować na serwer.";
  22. }
  23.  
  24. print $message;
  25.  
  26. function do_upload($upload_dir, $upload_url) {
  27.  
  28. $temp_name = $_FILES['userfile']['tmp_name'];
  29. $file_name = $_FILES['userfile']['name']; 
  30. $file_type = $_FILES['userfile']['type']; 
  31. $file_size = $_FILES['userfile']['size']; 
  32. $result = $_FILES['userfile']['error'];
  33. $file_url = $upload_url.$file_name;
  34. $file_path = $upload_dir.$file_name;
  35.  
  36. $filetype1 = ".jpg";
  37. $filetype2 = ".gif";
  38. $filetype3 = ".jpeg";
  39. $ext = strrchr($file_name,'.');
  40. print($ext);
  41. //File Name Check
  42. if ( $file_name =="") { 
  43. $message = "Błędna nazwa pliku";
  44. return $message;
  45. }
  46. //File Size Check
  47. else if ( $file_size > 5000000) {
  48. $message = "Rozmiar pliku przekracza 5000K.";
  49. return $message;
  50. }
  51. //File Type Check
  52. else if ( $file_type == "text/plain" ) {
  53. $message = "Przesyłanie skryptów na serwer wzbronione" ;
  54. return $message;
  55. }
  56.  
  57. // else if ($ext != $filetype1) {
  58. else if (($ext != $filetype1 || $ext != $filetype2 || $ext != $filetype3)) {
  59.  
  60. $message = "Przesyłanie na serwer tylko plików gif, jpg, jpeg" ;
  61. return $message;
  62. }
  63.  
  64.  
  65.  
  66.  
  67.  
  68. $result = move_uploaded_file($temp_name, $file_path);
  69. $message = ($result)?"Adres pliku <a href=$file_url>$file_url</a>" :
  70. "Błąd w uploadowaniu pliku.";
  71. $user=$_SESSION['uzytkownik'];
  72. $data=date("Y-m-d");
  73. $url=$file_url;
  74. mysql_query("INSERT INTO upload VALUES(0,'$user','$data','$url')");
  75.  
  76.  
  77.  
  78.  
  79.  
  80. return $message;
  81.  
  82. }
  83. ?>
  84. <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
  85. <input type="file" id="userfile" name="userfile">
  86. <input type="submit" name="upload" value="Upload">
  87. </form>


przy takim ukladzie nie mozna uploadowac zadnego pliku

natomiast przy zmianie z

  1. <?php
  2.  
  3. // else if ($ext != $filetype1) {
  4. else if (($ext != $filetype1 || $ext != $filetype2 || $ext != $filetype3)) {
  5.  
  6. $message = "Przesyłanie na serwer tylko plików gif, jpg, jpeg" ;
  7. return $message;
  8. }
  9.  
  10. ?>


na

  1. <?php
  2.  
  3. else if ($ext != $filetype1) {
  4. // else if (($ext != $filetype1 || $ext != $filetype2 || $ext != $filetype3)) {
  5.  
  6. $message = "Przesyłanie na serwer tylko plików gif, jpg, jpeg" ;
  7. return $message;
  8. }
  9.  
  10. ?>


pliki jpg sa uploadowane,

bylbym wdzieczny za rade, pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piciuuuu
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 26.04.2006

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


dzieki za info, myslalem ze ! spelnia taka role tylko w != takim ukladzie i nie wiedzialem jak to wrzucic do kodu, zaraz sprawdze taka opcje, wczoraj probowalem to pozmieniac samemu w nastepujacy sposob:

  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.  
  12. //create upload_files directory if not exist
  13. //If it does not work, create on your own and change permission.
  14. if (!is_dir("upload_files")) {
  15.     die ("upload_files directory doesn't exist");
  16. }
  17.  
  18. if ($_FILES['userfile']) {
  19.     $message = do_upload($upload_dir, $upload_url);
  20. }
  21. else {
  22.     $message = "Wybierz plik z komiksem który chciałbyś uploadować na serwer.";
  23. }
  24.  
  25. print $message;
  26.  
  27. function do_upload($upload_dir, $upload_url) {
  28.  
  29.     $temp_name = $_FILES['userfile']['tmp_name'];
  30.     $file_name = $_FILES['userfile']['name']; 
  31.     $file_type = $_FILES['userfile']['type']; 
  32.     $file_size = $_FILES['userfile']['size']; 
  33.     $result    = $_FILES['userfile']['error'];
  34.     $file_url  = $upload_url.$file_name;
  35.     $file_path = $upload_dir.$file_name;
  36.     $mimes[] = 'image/gif';
  37.     $mimes[] = 'image/jpg';
  38.  
  39.     
  40.     
  41.     if (in_array($file_type, $mimes))
  42.     {
  43.                 if ( $file_name =="") { 
  44.                 $message = "Błędna nazwa pliku";
  45.                 return $message;
  46.                         }
  47.     //File Size Check
  48.     else if ( $file_size > 5000000) {
  49.         $message = "Rozmiar pliku przekracza 5000K.";
  50.         return $message;
  51.     }
  52.     //File Type Check
  53.     else if ( $file_type == "text/plain" ) {
  54.         $message = "Przesyłanie skryptów na serwer wzbronione" ;
  55.         return $message;}
  56.  
  57.     
  58.     
  59.  
  60.       $result  =  move_uploaded_file($temp_name, $file_path);
  61.      $message = ($result)?"Adres pliku <a href=$file_url>$file_url</a>" :
  62.               "Błąd w uploadowaniu pliku.";
  63.           $user=$_SESSION['uzytkownik'];
  64.           $data=date("Y-m-d");
  65.           $url=$file_url;
  66.           mysql_query("INSERT INTO upload VALUES(0,'$user','$data','$url')");
  67.           
  68.          
  69.           
  70.           
  71.           
  72.     return $message;
  73.    } 
  74.     
  75.     else
  76.     {
  77.      $message = "Przesyłanie na serwer tylko plików gif, jpg, jpeg" ;
  78.     return $message;}
  79.  
  80.    
  81. }
  82.  
  83. ?>
  84. <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
  85.   <input type="file" id="userfile" name="userfile">
  86.   <input type="submit" name="upload" value="Upload">
  87. </form>  


i efekt jest taki ze skrypt zezwala na wyslanie gifow a niestety nie pozwala jpg
podejrzewam ze blad kryje sie w

  1. <?php
  2.  
  3.     $mimes[] = 'image/gif';
  4.     $mimes[] = 'image/jpg';
  5.  
  6. ?>


bo po zmianie kolejnosci mozna wgrac jpg a nie mozna gifa

edit
niestety po wprowadzeniu poprawek nadal to samo - mozna gify uploadowac a jpg niestety nie

Ten post edytował piciuuuu 29.04.2006, 13:18:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 18:36