Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysylanie pliku
Forum PHP.pl > Forum > PHP
soska66
zawsze z IE byly jakies problemy. teraz oczywiscie pojawil sie klolejny

wysylanie pliku (obrazka) dziala bez zarzutu i na Operze i na Firefoxie, ale nie na IE

w formularzu jest
Kod
echo "Awatar (max 15KB):<input name='awatar' type='file'>";
 echo "<INPUT TYPE='hidden' name='MAX_FILE_SIZE' value='15000'>";


przy analizie wysylki jest

  1. <?php
  2.  
  3. function get_extension($imagetype)
  4.    {
  5.        if(empty($imagetype)) return false;
  6.        switch($imagetype)
  7.        {
  8.            case 'image/gif': return '.gif';
  9.            case 'image/jpeg': return '.jpg';
  10.            case 'image/x-icon': return '.ico';
  11.            case 'image/png': return '.png';
  12.            default: return false;
  13.        }
  14.    }
  15.  
  16.  
  17. $filetype=$_FILES['awatar']['type'];
  18.  
  19. if($filetype=="image/jpeg"||$filetype=="image/gif"||$filetype=="image/png"||$filetype=="image/ico")
  20. {
  21.      $extension=get_extension($filetype);
  22.      $lokalizacja="/home/katalog/".$user.$extension;
  23.  
  24.      if(is_uploaded_file($_FILES['awatar']['tmp_name']))
  25.      {
  26.  
  27.     if(!move_uploaded_file($_FILES['awatar']['tmp_name'],$lokalizacja))
  28.         echo "Bład";
  29.                                 
  30.     else
  31.             echo "OK";
  32.  
  33.                                 
  34.      }
  35.      else
  36.     echo "blad wyslania";
  37.  
  38. }
  39. else
  40. echo "Zły format pliku awatara";
  41.  
  42. ?>



gdzie tu blad?questionmark.gif w IE pokazuje sie blad dla warunku else przy pierwszym IF czyli "Zly format pliku awatara".

Prosze o pilne zastanowienie sie nad tym, bo uruchomilem ta opcje w serwisie swoim i ludzie marudza smile.gif
Kuziu
Dopisz jeszcze typ image/pjpeg

IE inaczej patrzy na JPG'i tak mi sie wydaje
soska66
spoko - dzieki - z jpegami pomoglo

a masz recepte na png?? smile.gif
nospor
oj weź luknij do manuala albo walnij se print_r na $_FILES i bedziesz wiedzial co wysyla IE a co inne przegladarki:
http://us3.php.net/features.file-upload
Cytat
Browsers intepret png upload type differently too eg.

print_r() output from Mozilla 1.6
Array ( [name] => eg1.png [type] => image/png [tmp_name] => /var/tmp/phpIJd4FL [error] => 0 [size] => 66614 )

print_r() output from IE 6
Array ( [name] => eg1.png [type] => image/x-png [tmp_name] => /var/tmp/phpHJ04Dh [error] => 0 [size] => 66614 )

Note the difference of image/png and image/x-png type intepretation of the same image file.
soska66
dzieki - pomoglo

Od razu nasunelo mi sie jeszcze jedno pytanie

jak wymusic na przegladarce, zeby nie zapisywala w pamieci obrazkow. Plik formularz.php zawiera formularz do wyslania obrazka. Akcja fomrularza to formularz_wynik.php. Na tej stronce, bedacej wynikiem ma pojawiac sie wczytany obrazek. Na IE i Operze obrazek nie pojawia sie od razu po wczytaniu. Na jego miejscu siedzi jeszcze stary (w pamieci). mozna nawet przejsc sie po podstronach i wrocic - i obrazek wciaz jest stary - dopiero odswiezenie F5 powoduje wzcytanie zawartosci odnowa i pojawienie sie nowego obrazka. Czy pamiec podreczna mozna wylaczyc z pomiomu kodu?

meta HTTP-EQUIV="Pragma" CONTENT="no-cache"

dodam ze powyzsza linijka nie pomaga

troche ciezko mi to wyjasnic. jesli ktos bedzie skory do pomocy, to zapraszam na strone (w sygnaturze). Zalozcie konto i sprobujcie wgrac awatar (na IE - na mozilli niema tego problemu)
em1X
Moge sie mylic ale imho to moze byc wina przegladarki z tym ladowaniem do cache'u i nic ci pewnie nie pomoze, ergo namawiaj ludzi na firefoxa! niech tępią monopol.
soska66
Staram sie namawiac - ale wiekszosc sprawia wrazenie jakby nie potrafili zainstalowac sobie innej przegladarki aaevil.gif wpatruja sie w IE jak w obrazek i nic ich nie przekona smile.gif
^bmb
header("Cache-Control: no-cache, must-revalidate"); // dla HTTP/1.1
header("Pragma: no-cache"); // dla HTTP/1.0

Hmm te nagłówki chyba powinny pomóc a gdyby nie po podmianie przeładuj stronę przed wyświetleniem header("Location: xxx.php")
akubiczek
Cytat(em1X @ 2006-05-02 17:20:43)
Moge sie mylic ale imho to moze byc wina przegladarki z tym ladowaniem do cache'u i nic ci pewnie nie pomoze, ergo namawiaj ludzi na firefoxa! niech tępią monopol.

Jak webmaster/programista masz pisać aplikacje tak aby działały w każdym popularnym środowisku, a nie zwalać zawsze winę na przeglądarkę tongue.gif

Chyba że z założenia piszesz nie-uniwersalną aplikację, np. w XULu.
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.