Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Upload zdjęć, problem w IE
greg.paw.90
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


Witam serdecznie,
piszę do Was z prośbą o pomoc w rozwiązaniu problemu odnośnie skryptu, który wysyła pliki przy pomocy formularza na serwer.
Problem polega na tym, iż skrypt działa prawidłowo pod Mozilla Firefox, natomiast pod Internet Explorer coś "nie łapie", tzn wywala zawsze błąd - nieprawidłowy format.
Oto skrypt:
  1. if (isset($_POST['dodaj'])){
  2. $nazwa = $_POST['nazwa'];
  3. $nazwa = strtolower($nazwa);
  4. $nazwa = str_replace(" ","_",$nazwa);
  5. $nazwa = str_replace("+","_",$nazwa);
  6. $nazwa = str_replace("%","_",$nazwa);
  7. $nazwa = str_replace("&","_",$nazwa);
  8. $nazwa = str_replace("$","_",$nazwa);
  9. $nazwa = str_replace("!","_",$nazwa);
  10. $nazwa = str_replace("#","_",$nazwa);
  11. $nazwa = str_replace("@","_",$nazwa);
  12. $nazwa = str_replace("^","_",$nazwa);
  13. $wys = $_POST['wys'];
  14. $szer = $_POST['szer'];
  15. if(!empty($_POST['src_foto']) && $_FILES["src_foto"]["type"] == "image/pjpeg" || $_FILES["src_foto"]["type"] == "image/jpeg" || $_FILES["src_foto"]["type"] == "image/JPG"){
  16. if( is_uploaded_file( $_FILES['src_foto']['tmp_name'] ) )
  17. {
  18. $plik = '../Image/temp_'. $nazwa.'.jpg';
  19. if( move_uploaded_file( $_FILES['src_foto']['tmp_name'], $plik ) )
  20. {
  21. $src = imagecreatefromjpeg($plik);
  22. $size = @getimagesize($plik);
  23. $width = $size[0];
  24. $height = $size[1];
  25. $max_width = $szer;
  26. $max_height= $wys;
  27. $color = imagecreatetruecolor($max_width, $max_height);
  28. imagecopyresampled($color, $src, 0, 0, 0, 0, $max_width, $max_height, $width, $height);
  29. imagejpeg($color, "../Image/".$nazwa.".jpg", 90);
  30. $usun='../Image/temp_'. $nazwa.'.jpg';
  31. unlink($usun);
  32. echo 'Obraz został wgrany! <a href="java script:zdjecie('."'".'../Image/'.$nazwa.'.jpg'."'".')">Kliknij tutaj aby go zobaczyć</a>';
  33. }
  34. else{
  35. echo 'Błąd podczas przesyłania pliku!';
  36. }
  37. }
  38. else{
  39. echo 'Błąd podczas przesyłania pliku!';
  40. }
  41. }
  42. else{
  43. echo 'Nieprawidłowy foramt pliku!';
  44. }
  45. }
  46. else{
  47. echo '<form method="post" enctype="multipart/form-data">Wybierz plik ze zdjęciem <small>(max. 2000kb; format .jpg lub .JPG)</small> <input type="file" name="src_foto" size="29" /><input type="hidden" name="MAX_FILE_SIZE" value="2100000" /><br>
  48. Nazwa pliku <small>(max. 10znaków)</small> <input type="text" name="nazwa" size="10" maxlength="10"><br>
  49. Wysokość <input type="text" name="wys" size="2" maxlength="4">px<br>
  50. Szerokość <input type="text" name="szer" size="2" maxlength="4">px<br><br>';
  51. echo '<input type="submit" class="submit" name="dodaj" value="DODAJ ZDJĘCIE"></form>';
  52. }


Prosiłbym o jakieś rady co może być nie tak.

Pozdrawiam

Ten post edytował greg.paw.90 30.12.2009, 13:15:12
Go to the top of the page
+Quote Post
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Nie jestem pewien ale chyba pole type w tablice $_FILES jest zależne od przeglądarki. Co możesz zrobić:
1. Echo na $_FILES["src_foto"]["type"] i sprawdzenie co się pod tym kryje w IE.
2. Zmiana skryptu tak aby rozszerzenie uzyskać za pomocą funkcji pathinfo.
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Sformatuj ten kod, jak należy, bo łączenie klamr na czuja w listingu bez wcięć, to strzelanie sobie w stopę.
Go to the top of the page
+Quote Post
greg.paw.90
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


Dziękuje za odpowiedzi/podpowiedzi (IMG:style_emoticons/default/smile.gif)

Już sobie poradziłem okazało się, że funkcja empty() nie działa tak jak powinna na IE w przypadku przesyłu obrazów

  1. if($_POST['src_foto']!=' ' && $_FILES["src_foto"]["type"] == "image/pjpeg" || $_FILES["src_foto"]["type"] == "image/jpg" || $_FILES["src_foto"]["type"] == "image/jpeg" || $_FILES["src_foto"]["type"] == "image/JPG"){


Tak jak zrobiłem to działa.

Pozdrawiam
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: 23.08.2025 - 06:46