SWFUpload上传提示Security Error #2049

来源:互联网 发布:android无源码调试器 编辑:程序博客网 时间:2024/06/05 20:43

SWFUpload上传提示Security Error #2049

Other 2014-03-17 SWFUpload,Security Error,跨域

很早之前,我写过一篇基于PHP版本的SWFUpload上传组件的文章,最近老是收到不少朋友询问SWFUpload的问题,决定再整理一些最常见的问题整理出来。

一、点击hello弹不出选择文件对话框

这是由于你没有基于域协议访问引起的,你可以把它放到Webserver里试一试,比如nginx,Apache,tomcat等等。

二、上传文件提示Security Error #2049

这是很多朋友经常犯的错误,JavaScript有跨域问题,flash做为前端组件自然也存在跨域问题,解决此问题的方法是在upload域下创建如下文件:

crossdomain.xml

1
2
3
4
5
<?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>

如果允许所有的域提交就这样写:

1
<allow-access-from domain="*" />

三、如何过滤文件名

可以重写upload_start_handler方法,然后获取filename进行判断,通过的检测的可以继续执行上传,否则阻止上传。

1
2
3
4
5
6
7
vaf upload_start_handler = function(o){
    if(check(o.name)){
        // 继续
    }else{
        // 文件名有非法关键字
    }
};

 

0 0