-
-6 15
-
在测试DisuczX时微酷发现一个问题,也可以说是DZX的一个Bug,就是不能成功上传部分swf格式的Flash文件,在批量上传界面显示上传完成但无法显示所上传的Flash文件,但有的却可以,在Discuz论坛苦苦搜索了N久,终于找到了一个不起眼的贴子帮我解决了问题。
上传flash cs4或flash cs3 制作的swf文件时,都不能成功上传,但上传flash mx制作的swf文件时,都能成功上传,微酷分析原因很可能是getimagesize()函数无法读取压缩过的Flash文件的大小,于是返回False值。
图:无法上传部分swf文件

这就解释了的为什么有的Flash可以上传,而有的却无法上传的问题了。
① 打开论坛目录下 source\class\class_upload.php 文件
② 找到111行并注释掉:return false;
图:解决方法
关于getimagesize()函数及用法:
PHP函数getimagesize是庞大的PHP图形处理函数库中的一种,能够帮助我们取得所需要的图片或Flash的长度和宽度。
由于javaScript不能检测到Flash动画的宽度和长度,当用户上传flash动画的,就不能根据flash动画原来的大小来在网页上100%地显示。
其实这个工作可以在后台让PHP来完成的,因为PHP的getimagesize函数可以很好地支持swf的长宽检测。要检测swf文件的大小,简单地使用下面的PHP代码就可以了:
<?php
list($width, $height, $type, $attr) = getimagesize("vcoo.swf");
echo "宽度=".$width."<br/>";
echo "高度=".$height."<br/>";
?>getimagesize()函数无法工作:
getimagesize()函数在Flash6下和压缩过的flash下无法正常工作,此问题到目前微酷没有找到解决办法。
微酷提示:修改代码请自重造成的安全问题本博客不负责任。
本文永久链接地址: http://www.vcoo.me/show/1478.html
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

2楼 sasumi http://blog.aisoyo.com
Post:2010-10-12 14:17:54
因此程序里面加多一个 && $type != 13 这样才合理
1楼 iamlukas http://1ukas.com
Post:2010-6-15 11:54:52