Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wgrywanie obrazków na IE - Błąd :/
sexigrzes
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 21.04.2010

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
1010
post
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


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
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.

Ten post edytował mortus 22.04.2010, 08:16:28
Go to the top of the page
+Quote Post

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: 17.09.2025 - 13:58