Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload grafiki - problem na IE
Forum PHP.pl > Forum > Przedszkole
Qbejs
Witam wszystkich forumowiczów exclamation.gif

Napisałem ostatnio na potrzeby małego serwisu prosty skrypt uploadu....No i pojawia się problem TYLKO na IE....mianowicie wywala błąd Niepoprawny typ pliku graficznego z tablicy komunikatów jaką sobie stworzyłem....może przytocze kod...Może ktoś mi pomoże rozwiązać problem smile.gif Z góry dzięki...oto kod skryptu:

  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. //Raport bledow
  7. $raport=array(
  8. 0 => "Plik wgrano bez żadnych przeszkód !",
  9. 1 => "Rozmiar wgrywanego pliku przekracza <b>upload_max_filesize</b> ustawioną w <b>php.ini</b>!",
  10. 2 => "Rozmiar wgrywanego pliku przekracza <b>$max_size</b> bajtów!",
  11. 3 => "Plik wgrano tylko częściowo!",
  12. 4 => "Nie wgrano pliku!",
  13. 5 => "Niepoprawny typ pliku graficznego"
  14. );
  15.  
  16.  
  17. //Generowanie minniatruki
  18. function GenerujMiniaturke($upl_dir, $nazwa_pliku)
  19. {
  20. $pelna_sciezka=$upl_dir.$nazwa_pliku;
  21. $typ_mime=getimagesize($pelna_sciezka);
  22. if ($typ_mime[2]=='1') {
  23. $imu = @ImageCreateFromGIF($pelna_sciezka);
  24. }
  25. if ($typ_mime[2]=='2') {
  26. $imu = @ImageCreateFromJPEG($pelna_sciezka);
  27. }
  28. $x=imagesx($imu);
  29. $y=imagesy($imu);
  30. $nx = 200;
  31. $ny = round(($nx*$y)/$x);
  32. $imn= imagecreatetruecolor($nx, $ny) or die ("Nie mogę zainicjować tworzenia obrazu przez GD");
  33. imagecopyresized ($imn, $imu, 0, 0, 0, 0, $nx, $ny, $x, $y);
  34. $sciezka=$upl_dir.'mini/'.$nazwa_pliku;
  35. //chmod('upload/mini/'.$nazwa_pliku,0755);
  36. if ($typ_mime[2]=='1') {
  37. if (imagegif($imn,$sciezka,100))
  38. return true;
  39. }
  40. if ($typ_mime[2]=='2') {
  41. if (imagejpeg($imn,$sciezka,80))
  42. return true;
  43. }
  44. chmod($uploaddir.$fname,0755);
  45. }
  46.  
  47. // Formatowanie danych z formularza 
  48. echo '<pre><!--'.print_r($_POST,true).'--></pre>';
  49. echo '<pre><!--'.print_r($_FILES,true).'--></pre>';
  50. if (isset($_POST['SendForm']))
  51. {
  52. if ($_FILES['userfile']['type']=='image/jpeg')
  53.  {
  54. $folder='galerie/'.$_POST['folder'].'/';
  55.  
  56. $fname=time().'.jpg';
  57. $uploaddir = $folder;
  58. $uploadfile = $uploaddir.$fname;
  59. // chmod('upload/'.$fname,0755);
  60.  //echo '<pre>'.print_r($_FILES,1).'</PRE>';
  61. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
  62. {
  63. echo "<p>raport: <b>".$raport[$_FILES['userfile']['error']]."</b><br>";
  64. chmod($uploaddir.'/'.$fname,0755);
  65. if (GenerujMiniaturke($uploaddir, $fname))
  66.  echo "<p>raport: <b>Plik miniaturki wygenerowany poprawnie !</b><br>";
  67. else
  68. echo "raport: <b>Plik miniaturki nie został wygenerowany.</b>";
  69. }
  70. else
  71. echo "raport: <b>Nie podano nazwy pliku!!!</b>";
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78. print ('<BR>raport: <B>Produkt został dodany pomyślnie ! </B><BR><A HREF="javascript:history.back()"> Powrót do Panelu Administarcyjnego</A>');
  79. print $folder;
  80. }
  81. else
  82.  echo 'raport: <B>'.$raport[5].'</B><BR> <A HREF="javascript:history.back()"> Powrót do Panelu Administarcyjnego</A>';
  83.  
  84. ?>
cadavre
Na końcu np nie masz }
mike
Ludzie ile można, było już tyle razy że się nudzić powoli zaczyna.

BadzIEwIE wysyła pliki .jpg z typem mime image/pjpeg a nie image/jpeg.

I po kłopocie.
Guest
No i zmiana typu pliku nie przyniosło żadnego efektu...co do klamry to z ropędu jej nie wpisałem...ale w skrypcie jest.
mike
Pokaż te zmiany.
Coś czuję że nie poszły w dobrą stronę winksmiley.jpg
Qbejs
Zmieniłem typ pliku...

Było
Kod
if ($_FILES['userfile']['type']=='image/jpeg')


Jest
Kod
if ($_FILES['userfile']['type']=='image/pjpeg')


Kolejna sprawa...rozumiem że to tej zmianie skrypt bedzie hulał na wszystkich przegladarkach ? smile.gif
mike
Cytat(Qbejs @ 2006-02-07 18:22:30)
Kolejna sprawa...rozumiem że to tej zmianie skrypt bedzie hulał na wszystkich przegladarkach ? smile.gif

Nie.
Po tej zmanie będzie hulało tylko na badzIEwiu.
Musisz uwzględnić obie sytuacje.

Spróbuj tak:
  1. <?php
  2.  
  3. $arrAllow = array( 'image/jpeg', 'image/pjpeg' );
  4.  
  5. if( in_array( $_FILES['userfile']['type'], $arrAllow ) )
  6. {
  7. // OK
  8. }
  9. else
  10. {
  11. // NIE OK
  12. }
  13.  
  14. ?>
Qbejs
I to nie pomogło....wywala niepoprawny format pliku....
Qbejs
Może ja coś źle zrozumiałem....to ma tak wyglądać:

  1. <?php
  2. // Formatowanie danych z formularza 
  3. echo '<pre><!--'.print_r($_POST,true).'--></pre>';
  4. echo '<pre><!--'.print_r($_FILES,true).'--></pre>';
  5. if (isset($_POST['SendForm']))
  6. {
  7. $arrAllow = array( 'image/jpeg', 'image/pjpeg' );
  8.  
  9. if( in_array( $_FILES['userfile']['type'], $arrAllow ) )
  10.  {
  11. $folder='galerie/'.$_POST['folder'].'/';
  12. $fname=time().'.jpg';
  13. $uploaddir = $folder;
  14. $uploadfile = $uploaddir.$fname;
  15. // chmod('upload/'.$fname,0755);
  16. //echo '<pre>'.print_r($_FILES,1).'</PRE>';
  17. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
  18. {
  19. echo "<p>raport: <b>".$raport[$_FILES['userfile']['error']]."</b><br>";
  20. chmod($folder.$fname,0755);
  21. if (GenerujMiniaturke($uploaddir, $fname))
  22.  echo "<p>raport: <b>Plik miniaturki wygenerowany poprawnie !</b><br>";
  23. else
  24.  echo "raport: <b>Plik miniaturki nie został wygenerowany.</b>";
  25. }
  26. else
  27.  echo "raport: <b>Nie podano nazwy pliku!!!</b>";
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. print ('<BR>raport: <B>Produkt został dodany pomyślnie ! </B><BR><A HREF="javascript:history.back()"> Powrót do Panelu Administarcyjnego</A>');
  35. }
  36. else
  37.  echo 'raport: <B>'.$raport[5].'</B><BR> <A HREF="javascript:history.back()"> Powrót do Panelu Administarcyjnego</A>';
  38.  
  39. }
  40.  
  41. else
  42. print ('ERROR');
  43.  
  44. ?>
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.