Как определить SWF или нет ?

Krisha

pain in the neck
Как определить SWF или нет ?

При аплоаде SWF файла на сервер, перед тем, как сохранить его, необходимо определить пришел ли "честный" SWF файл или нет.

Возможно ли это и если да, то кто как это реализовывал ?
 

Crazy

Developer
Обрати внимание: детектирование битых swf не гарантируется (в обоих смыслах).
 

E318

Guest
точнее

я вот подумал что размер файла это фигня, я могу тебе своп от винды засунуть.. и назвать его e318.swf

по моему нужно делать проверку на
Content-type: image/swf

если false то нафиг этот файл...
 

Crazy

Developer
Re: точнее

Автор оригинала: E318
по моему нужно делать проверку на
Content-type: image/swf
И где ты собираешься этот "Content-type: image/swf" брать? :)

В $_FILES['userfile']['type'], к примеру, живет несколько другая строка.

P.S. А код, сразу видать, ты запустит не догадался... :)
 

Krisha

pain in the neck
E318
А при чем тут размер файла ?
Вот попробуй свой своп подсунуть функции getImageSize() и погляди, что получится.

Crazy
Важно, чтобы это был действительно SWF, а не что-то другое.
"Битый" он или нет это разве вообще возможно определить ?
 

Crazy

Developer
Автор оригинала: Krisha
Crazy
Важно, чтобы это был действительно SWF, а не что-то другое.
"Битый" он или нет это разве вообще возможно определить ?
Только полным парсингом (к примеру -- загрузкой в плеер). Но обычно таких изысков не требуется.
 

Said

Guest
На юникс серверах еще можно использовать команду file
(к сожалению getimagesize определяет не все типы файлов :)
 

Саныч

Guest
Вы знаете, у меня была похожая проблема - определить линейные размеры ролика из файла .swf Насколько я понял, средствами PHP эта проблема не решается. Header из ролика можно прочитать средствами JAVA, но в ней - увы - я не рулю.
 

Krisha

pain in the neck
Саныч
Тоже поленился приведенный Crazy код запустить?
PHP:
$info = getImageSize($_FILES['userfile']['tmp_name']);

echo "<pre>";
print_r($info);
echo "</pre>";

Вывод:
Array
(
    [0] => 608
    [1] => 298
    [2] => 13
    [3] => width="608" height="298"
    [mime] => application/x-shockwave-flash
)
 
Сверху