很早之前,我写过一篇基于PHP版本的SWFUpload上传组件的文章,最近老是收到不少朋友询问SWFUpload的问题,决定再整理一些最常见的问题整理出来。
点击hello弹不出选择文件对话框
这是由于你没有基于HTTP协议访问引起的,你可以把它放到WebServer
里试一试,比如Nginx,Apache,Tomcat等等,然后使用http访问页面
上传文件提示Security Error 2049
这是很多朋友经常犯的错误,JavaScript有跨域问题,Flash做为前端组件自然也存在跨域问题,解决此问题的方法是在upload域下创建如下文件:
crossdomain.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="这里写上你的域名" />
</cross-domain-policy>
如果允许所有的域提交就这样写
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
如何过滤文件名
可以重写upload_start_handler方法,然后获取filename进行判断,通过的检测的可以继续执行上传,否则阻止上传
vaf upload_start_handler = function (o) {
if (check(o.name)) {
// 继续
} else {
// 文件名有非法关键字
}
};