Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wgrywanie obrazków na IE - Błąd :/
Forum PHP.pl > Forum > Przedszkole
sexigrzes
Witam

Mam takie wgrywanie plików:

  1. if(is_uploaded_file($_FILES['plik']['tmp_name']))
  2. {
  3.  
  4. if($_FILES['plik']['type'] == "image/gif" || $_FILES['plik']['type'] == "image/jpeg" || $_FILES['plik']['type'] == "image/png" )
  5. {
  6. $katalog_nazwa = $_POST['katalog'];
  7.  
  8.  
  9. $typ = substr($_FILES['plik']['type'], 6, 0);
  10.  
  11.  
  12. $plik_nazwa = $_FILES['plik']['name'].$typ;
  13.  
  14. if(@move_uploaded_file($_FILES['plik']['tmp_name'], "../img/$katalog_nazwa/$plik_nazwa"))
  15. {
  16. echo "<div class=\"info_gre\">Plik wgrany pomyślnie</div>";
  17. $tpl -> display('wgraj.tpl');
  18. }
  19. else
  20. {
  21. echo "<div class=\"info_red\">Błąd</div>";
  22. $tpl -> display('wgraj.tpl');
  23.  
  24. }
  25.  
  26.  
  27.  
  28. }
  29. else {
  30. echo "<div class=\"info_ora\">Zły format pliku, wymagany format: gif, jpg lub png </div>";
  31. $tpl -> display('wgraj.tpl');
  32. }
  33.  
  34.  
  35. }




WGRAJ TPL:


  1. <form class="form" enctype="multipart/form-data" action="?page=wgraj&pokaz=wgrywanie" method="post">
  2. <div class="wgraj_box">Katalog:
  3.  
  4. <select class="wgraj_lista" name="katalog"><option selected="selected" class="wgraj_lista" value="nowosci">Wszystko</option></select>
  5.  
  6. <input type="file" name="plik" />
  7. </div>
  8. <center><input class="wgrajbutton" type="submit" name="submit" value="Wgraj zdjęcie"></center>
  9. </form>



Niestety nie działa na IE, dlaczego?
1010
W IE są inne MIME Types, zatem linikę

  1. if($_FILES['plik']['type'] == "image/gif" || $_FILES['plik']['type'] == "image/jpeg" || $_FILES['plik']['type'] == "image/png" )


musisz zamienić na:

  1. if($_FILES['plik']['type'] == "image/gif" || $_FILES['plik']['type'] == "image/jpeg" || $_FILES['plik']['type'] == "image/pjpeg" || $_FILES['plik']['type'] == "image/png" || $_FILES['plik']['type'] == "image/x-png" )


Niestety nie dam głowy czy w przypadku gifa problem też istnieje, jeśli tak musisz sobie dopisać jeszcze jeden typ.

Jeśli nie wiesz jaki to najlepiej sobie wyświetlić $_FILES['plik']['type'] i już będziesz wiedział

Pozdro
mortus
A w innych przeglądarkach dobrze działa, bo przecież w tablicy $_FILES pod $_FILES['plik']['name'] podana jest nazwa pliku wraz z rozszerzeniem, zatem nazwy Twoich obrazków po wgraniu będą wyglądać tak: "obrazek.jpg.jpg", no chyba, że wgrywasz pliki, które nie mają rozszerzenia. A jeśli tak, to musisz uwzględnić fakt, że zarówno plik z mime type image/jpg, jak i image/jpeg, jak i image/pjpeg może mieć jedno rozszerzenie - jpg. W tym przypadku kod
  1. $typ = substr($_FILES['plik']['type'], 6, 0);
się nie sprawdzi.

EDIT
Jednak się pomyliłem. Nazwy Twoich obrazków będą wyglądać np. tak: obrazek.jpgjpg, a jeśli wgrywany plik nie będzie miał rozszerzenia, to tak: obrazekjpg.
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.