Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Problem z wysyłaniem pliku w IE
Forum PHP.pl > Forum > Przedszkole
!*!
Formularz:
  1. <form action="fotka.php" method=post enctype="multipart/form-data">
  2.  
  3. <input type="hidden" name="MAX_FILE_SIZE" value="30000">
  4. <input type="file" name="plik">
  5. <input type="submit" value="WYSLIJ">
  6. </form>



  1. <?php
  2. $katalog = 'files/'; 
  3.  
  4. $losuj = rand(99, 9999999);
  5. $losuj2 = date("is"); 
  6. $losuj3 = date("HisYdm");
  7.  
  8. $nowanazwa = ''.$losuj.$losuj2.$losuj3.'';
  9.  
  10. $rozmiar = '400000'; // 40000 to jest 40kb ?
  11.  
  12. $rozmiarpis = "40Kb"; 
  13.  
  14.  
  15. //---ustawka---// 
  16.  
  17. $pliczek = $_FILES['plik']['name']; 
  18.  
  19. $explode = explode(".",$pliczek);
  20. $explode2 = ".$explode[1]";
  21.  
  22.  
  23. $wielkoscpliku = $_FILES['plik']['size']; 
  24.  
  25.  
  26. // pobiera wysokość i szerokość pliku
  27. $wys = '140';
  28. $szer = '100';
  29.  
  30. $rozm = getimagesize($_FILES['plik']['tmp_name']);
  31.  
  32. $echoerror2 = 'Błąd ';
  33.  
  34. if (isset($_FILES['plik']['name']))
  35. { 
  36.  
  37.  
  38. if ($wielkoscpliku >= $rozmiar){ 
  39.  
  40. $errorq=1; 
  41. $echoerror = "wielkość za duża"; 
  42.  
  43. }
  44.  
  45. if ($rozm[1] != $wys or $rozm[0] != $szer){ 
  46.  
  47. $errorq=1; 
  48. $echoerror = $echoerror2;
  49. } 
  50.  
  51. if ($_FILES['plik']['type'] != 'image/gif' AND $_FILES['plik']['type'] != 'image/jpeg' AND $_FILES['plik']['type'] != 'image/png') 
  52.  
  53. { 
  54.  
  55. $errorq=1; 
  56. $echoerror = $echoerror2;
  57. #$echoerror = "musisz wybrać plik graficzny *.gif, *jpg lub *.png"; 
  58.  
  59. }
  60. ?>


Sprawdzałem pod kilkoma przeglądarkami i jest ok... tylko IE w ogóle nie chce się dostosować i wywala błąd, dlaczego?
Foxx
Jaki błąd?
!*!
Ok, odkryłem że za błąd w IE odpowaida sprawdzanie pliku... Napisze mi ktoś dlaczego? Jak inaczej mam sprawdzić jaki to plik?
  1. <?php
  2. if ($_FILES['plik']['type'] != 'image/gif' AND $_FILES['plik']['type'] != 'image/jpeg' AND $_FILES['plik']['type'] != 'image/png') 
  3.  
  4. { 
  5.  
  6. $errorq=1; 
  7. $echoerror = $echoerror2;
  8.  
  9. }
  10. ?>
ayeo
method = "POST" ?
!*!
  1. <?php
  2. $_POST['sprawdz'] = $_FILES['plik']['type'];
  3. $jaki = $_POST['sprawdz'];
  4.  
  5. if (isset($jaki)) { 
  6.  
  7. if ($jaki != 'image/gif' AND $jaki != 'image/jpeg' AND $jaki != 'image/png'){ 
  8.  
  9. $errorq=1; 
  10. $echoerror = $echoerror2;
  11.  
  12.  
  13. }}
  14. ?>


chodzi Ci o coś takiego? Nie rozumiem czemu te dane mają być przesyłane w post? Powyższy przykład i tak nie działa...
paziek
Te dane są przesyłane w post, ale chyba chodzi mu o to, abyś dodał w formularzu cudzysłów.
Tyle, że IE pewnie sobie radzi i bez niego.. zwłaszcza, że jak nie dasz tam żadnej metody, to samo z siebie sobie dodaje get :<

Ale jaki błąd ci wywala? Plik się uploaduje (z błędami), czy nie?
!*!
Nie dodaje żadnego pliku, a błąd jest to po prostu zmienna $echoerror z napisaem o błedzie pliku, nic poza tym. A motyw z "post" widzialem i poprawiłem dawno, niestety nic to nie zmieniło.
paziek
Wykorzystaj $errorq i sprawdź który warunek zwraca błąd. Teraz zawsze tam wstawiasz 1 i nie wiadomo gdzie nastąpił błąd.
Trochę to zawęzi poszukiwania.

ps. Nie działa w IE6 oraz IE7, czy tylko IE6?
!*!
znalazłem rozwiązanie, IE potrzebuje swoich typów:

  1. <?php
  2. $_FILES['plik']['type'] != 'image/pjpeg' AND $_FILES['plik']['type'] != 'image/x-png'
  3. ?>
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.