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: 16 let
|
0