Autor Zpráva
Filips
Profil
Ahoj, mám následující problém. Mám uploadovací skript, ale nějak mi nefunguje v IE. Netuším proč.
přikládám kódy:

PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	  <meta name="author" content="Filip Výmola; e-mail:filips@filips.cz" /> 
    <link rel="stylesheet" href="upload-style.css" media="screen" type="text/css" /> 
  <title>Upload souborů - Paintball Nivnice</title>
  </head>
   <body>

<?php

//Nastaveni
$max_vel_obr = 2147483648;//2 na 30
$soubor = true;
$odesilaci_stranka = 'index.html';
$adresar = 'soubory/';
$chybovka = false;

//Zjisteni zda-li existuje prvek se souborem
if ( !isset ( $_FILES['obrazek']) ) {
  $chybovka = 'Formulář byl odeslán neúplný!';
  break;
  } else {
    $obrazek = $_FILES['obrazek'];
  }
  
//Overeni ostatnich chyb
switch ( $obrazek['error']) {
  case UPLOAD_ERR_INI_SIZE: 
  $chybovka = 'Velikost obrázku přesáhla povolený limit ' .
    "$max_vel_obr bajtů.";
  break 2;
  
  case UPLOAD_ERR_PARTIAL:
    $chybovka = 'Při odesílání souboru došlo k chybě, ' . "zkuste to prosím znovu <a href='{$odesilaci_stranka}'></a>.";
  break 2;
  
  case UPLOAD_ERR_NO_FILE:
    if ( $soubor ) {
      $chybovka = 'Nebyl vybrán žádný soubor, ' .
        "vyberte jej <a href='{$odesilaci_stranka}'>zde</a>.";
  	}  
    break 2;
  case UPLOAD_ERR_FORM_SIZE:
    $chybovka = 'Velikost souboru je podle skrytého pole ' .
      'MAX_FILE_SIZE příliš velká.';

  case UPLOAD_ERR_OK:
    if ( $obrazek['size'] > $max_vel_obr ) {
      $chybovka = 'Obrázek je příliš velký. Nemůže obsahovat více' .
      " než $max_vel_obr bajtů.";
    }
  	break;
  default:
    $chybovka = "Došlo k neznámé chybě, " .
      "zkuste to znovu <a href='{$odesilaci_stranka}'>zde</a>.";  
  }
  
//Overeni MIME TYPE
if ( !in_array(
  $obrazek['type'],
  array ( 'image/jpeg', 'image/pjepg', 'image/png', 'image/gif', 'image/JPEG', 'image/PJPG', 'image/PNG', 'image/GIF' )
  ) ) {
    $chybovka = "Povoleny jsou pouze formáty JPG, JPEG, PNG a GIF, " .
      "opakujte pokus <a href='{$odesilaci_stranka}'>zde</a>.";

	}

//} while ( 0 );

//Presunuti obrazku do adresare prijatych souboru
if ( $chybovka==false ) {
  if(is_uploaded_file($obrazek['tmp_name'])){ 
    if ( !@move_uploaded_file (
      $obrazek['tmp_name'],
      $adresar . $obrazek['name']
    ) ) {
      $chybovka = "Chyba při přesunutí souboru do cílového adresáře," .
        "opaujte pokus <a href='{$odesilaci_stranka}'>zde</a>.";
       echo "Chyba: ".$chybovka;
    }else echo '<div id="obsah"><span style="color: #008000";><strong>Soubor byl úspěšně nahrán!</strong></span> <br /> Soubor je umístěn zde: <a href='.$adresar . $obrazek['name'].'>'.$obrazek['name'].'</a></div>';
	}else echo "Soubor se nepodařilo uploadovat na server.";
}else{
  echo "Chyba: ".$chybovka;
}

?>
  </body>
</html>



HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	  <meta name="author" content="Filip Výmola; e-mail:filips@filips.cz" /> 
    <link rel="stylesheet" href="upload-style.css" media="screen" type="text/css" /> 
  <title>Upload souborů - Paintball Nivnice</title>
  </head>
   <body>
    <div id="obsah">
      
    
      <form action="super-upload.php" method="post" enctype="multipart/form-data" class="form">
        <input type="hidden" name="MAX_FILE_SIZE" value="20000000" />
        <strong>Vyberte soubor z disku:</strong> <input type="file" name="obrazek" /> 
        <input type="submit" value="Nahrát!" class="button" />
      </form>
     </div>
  </body>
</html>


Díky za rady a připomínky
Filips
Profil
Jo kdyžtak funguje to tady: http://upload.paintball-nivnice.cz můžete vyzkoušet.
Matty
Profil
Filips
V IE7 funguje. IMHO je blbost, aby PHP script nefungoval kvůli prohlížeči.
Filips
Profil
Matty
No to jsem si taky říkal, ale prostě v IE 6 mě to nevezme ten samý obrázek co ve Firefoxu. Tomu právěže moc nerozumím.
Bubák
Profil
IE7 standardní nastavení, nefunguje mi, dostal jsem hlášku:
Chyba: Povoleny jsou pouze formáty JPG, JPEG, PNG a GIF, opakujte pokus zde.

Zkoušel jsem odeslat korektní soubory *.jpg a *.png
Opera 9.51 a Safari 3.1.2 bez problémů.

Zaměřil bych se na mime typ odesílaných souborů.
Filips
Profil
Bubák
No to nevím, protože ve firefoxu mi to bere všechno. V IE nic.
Bubák
Profil
Už vím, kde jsem o problému s mime typem odesílaných souborů v IE četl:
http://validator.webylon.info/docs/differences.html#uploaded-file
Filips
Profil
Hm zajímavé díky. A jak by se to dalo opravit? Nevím jestli tady bude vhodné podstrčit aplication/xml typ :-/
Filips
Profil
Tak problém vyřešen. Problém: Překlep: image/pjepg má být image/pjpeg

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: