| Autor | Zpráva | ||
|---|---|---|---|
| SINUZ Profil |
#1 · Zasláno: 26. 2. 2008, 22:22:04 · Upravil/a: SINUZ
Zdravím, potřebuju nějakým způsobem zajistit nahrání flash banneru do databáze. Běžný jpg/gif již mám vyřešený (není problém se to na netu dočíst), ale o swf nikde není ani slovo, tady je kus polofunkčního kódu co jsem vyplodil...
tady je ořezanej formulář: <form action="vlozenibanneruswf.php" method="post" enctype="multipart/form-data"> <input name="banner" type="file" accept="application/x-shockwave-flash"> <input type="hidden" name="MAX_FILE_SIZE" value="50000"> <input type="submit" value="vložit"> </form> příjde mi že ten atribut accept je k ničemu, chová se to stejně s ním i bez něj... tady je skript vlozenibanneruswf.php
$typ=strrchr($HTTP_POST_FILES['banner']['name'], ".");// ze jména souboru zjistím jeho příponu
if(trim($HTTP_POST_FILES['banner']['name'])==""):
$chyba="Nebyl vybrán žádný flash";
elseif($HTTP_POST_FILES['banner']['size']==0):
$chyba="Vybraný soubor má nulovou velikost";
elseif($HTTP_POST_FILES['banner']['size']>54000):
$chyba="Soubor je příliš velký - maxim. velikost nesmí překročit 50 kB";
elseif(!is_uploaded_file($HTTP_POST_FILES['banner']['tmp_name'])):
$chyba="Přístup odepřen";
elseif($HTTP_POST_FILES['banner']['type']!="application/x-shockwave-f lash"):
$chyba="Soubor není platný objekt typu x-shockwave-flash"; //TADY TA PODMÍNKA MI NEFAKÁ, SEŽERE TO COKOLIV (treba jpg) S PŘÍPONOU SWF!!!!!!!
elseif($typ!=StrToLower(".swf")):
$chyba="Vkládat lze pouze bannery ve formátu SWF.";
else:
// --------------------------ZAPIS-SOUBORU-------------------------
endif;
// výpis chybové hlášky
echo $chyba;
Pokud tam vidíte nějakou blbost tak jedině dobře, jde mi o to jak ošetrit aby šel nahrát opravdu jen flash, díky. btw: navíc vsechny soubory v databázi v BLOBu maj jen 28 bajtů, ale to uz je jen detail... ;-) |
||
| pitomec Profil |
#2 · Zasláno: 27. 2. 2008, 08:15:06
ta podminka se mi zda ok..zkus si to odzkouset ale mas tam zbytecne posilanou tu MAX_FILE_SIZE
myslim ze existuje funkce ktera ti vypise mime typ urcityho souboru, uz ale nevim jak se jmenuje...tak si ji najdi a zkus si vypsat mime typ nejaky swf |
||
| SINUZ Profil |
#3 · Zasláno: 27. 2. 2008, 16:20:26 · Upravil/a: SINUZ
zkoušel jsem tohle... ale cteni skriptu se na tom jakoby zasekne a dál nepokračuje a ani nevyhodí žádnou chybu a to jak při finfo tak i při mime_content_type
if(class_exists($finfo)): $finfo = new finfo(); echo $finfo->file($_FILES["banner"]["tmp_name"]); else: echo mime_content_type($_FILES["banner"]["tmp_name"]); endif; Jediný co fakčí je tohle, ale nepříjde mi to zrovna dvakrát bezpečný... i když jelikož bude moct vkládat bannery jen admin, tak neočekávám nějakej megahack :)
$bann=str_replace(";", "", $HTTP_POST_FILES['banner']['tmp_name']); //po tomhle nevim jestli to swf neznehodnoti... teda... jeste nebyl cas odzkouset
$obrazek = addslashes(fread(fopen($bann, "r"), filesize($bann)));// soubor načtu jako binární text
if(substr($obrazek, 0, 3)!="FWS"):
$chyba="Soubor není platný objekt typu x-shockwave-flash";
endif;
|
||
|
Časová prodleva: 18 let
|
|||
0