$s=@GetImageSize($file_banner);
if (!is_array($s)) {
print "неверный формат файла";
}
else {
/* тут твой switch */
}
Формат файла PHP
[COLOR=darkred]==============[/COLOR]
[COLOR=darkred]Устно-письменное предупреждение за несоответствие названия темы содержанию!!![/COLOR]
getimagesize();
Помогите может можно исправить. С другими форматами всё ОК.
Код:
$type_upload=GetImageSize($file_banner);
if ($type_upload[2]==1)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==2)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==3)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==4)
{
echo'
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,42,0" id="Banner Exchange" width="'.$width.'" height="'.$height.'">
<param name="movie" value="/images/'.$new_file_name.'">
<param name="quality" value="high">
<param name="allowscriptaccess" value="samedomain">
<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="'.$width.'" height="'.$height.'" name="'.$new_file_name.'" src="/images/'.$new_file_name.'" quality="high" swLiveConnect="true" allowScriptAccess="samedomain">
</embed>
</object>';
}
if ($type_upload[2]==1)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==2)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==3)
{
echo"<img src=/images/$new_file_name border=1 width=$width height=$height>";
}
if ($type_upload[2]==4)
{
echo'
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,42,0" id="Banner Exchange" width="'.$width.'" height="'.$height.'">
<param name="movie" value="/images/'.$new_file_name.'">
<param name="quality" value="high">
<param name="allowscriptaccess" value="samedomain">
<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="'.$width.'" height="'.$height.'" name="'.$new_file_name.'" src="/images/'.$new_file_name.'" quality="high" swLiveConnect="true" allowScriptAccess="samedomain">
</embed>
</object>';
}
для определения формата графических файлов читаем сигнатуру (первые 5-10 байт). я применял такую функцию:
Код:
function getdatatype($str)
{
$sign = substr($str, 0, 10);
if (strpos($sign, "JFIF") !== false) return "image/jpeg";
if (strpos($sign, "PNG") !== false) return "image/png";
if (strpos($sign, "GIF89") !== false) return "image/gif";
if (strpos($sign, "CWS") !== false) return "application/x-shockwave-flash";
}
{
$sign = substr($str, 0, 10);
if (strpos($sign, "JFIF") !== false) return "image/jpeg";
if (strpos($sign, "PNG") !== false) return "image/png";
if (strpos($sign, "GIF89") !== false) return "image/gif";
if (strpos($sign, "CWS") !== false) return "application/x-shockwave-flash";
}
Код:
Тут видите проблема в чём. GetImageSize когда SWF формат проверяет, то неизвестно почему, но факт в том, что если при создании FLASH анимации использоволось зжатие, файл не будет определятся функцией GetImageSize
Вот так вот
ДАже не знаю, что делать :)
Может кому будет тоже нужно. Оказывается SWF не всегда бывает SWF иногда он SWC типа кодированный SWF
Ну и определяем его вот так
Код:
$type_upload=GetImageSize($file);
if ($type_upload[2]==13)
{
echo SWC;
}
if ($type_upload[2]==13)
{
echo SWC;
}
Ну а для открытия нужно указывать формат swf