| Autor | Zpráva | ||
|---|---|---|---|
| Filips Profil |
#1 · Zasláno: 9. 7. 2008, 02:07:54
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 |
#2 · Zasláno: 9. 7. 2008, 02:08:20
Jo kdyžtak funguje to tady: http://upload.paintball-nivnice.cz můžete vyzkoušet.
|
||
| Matty Profil |
#3 · Zasláno: 9. 7. 2008, 09:52:27
Filips
V IE7 funguje. IMHO je blbost, aby PHP script nefungoval kvůli prohlížeči. |
||
| Filips Profil |
#4 · Zasláno: 9. 7. 2008, 11:52:51
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 |
#5 · Zasláno: 9. 7. 2008, 12:14:07
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 |
#6 · Zasláno: 9. 7. 2008, 12:31:32
Bubák
No to nevím, protože ve firefoxu mi to bere všechno. V IE nic. |
||
| Bubák Profil |
#7 · Zasláno: 9. 7. 2008, 12:33:10
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 |
#8 · Zasláno: 9. 7. 2008, 12:39:59
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 |
#9 · Zasláno: 10. 7. 2008, 20:21:45
Tak problém vyřešen. Problém: Překlep: image/pjepg má být image/pjpeg
|
||
|
Časová prodleva: 18 let
|
|||
0