首先,出现这个问题的原因是flash的安全机制问题,因为这个插件本身依赖flash来实现,flash这种东东有太多的诟病,懒得吐槽了。好在插件官方现在已经推出html5版本的了,不过要收费的,具体怎么样不知道,总之应该比falsh好吧,好吧,扯远了,回归正题。
其实要解决这个问题很简单,既然我们已经知道是flash的机制问题,那就从这里下手,出于安全考虑,flash不允许跨域请求,那么有没有什么办法解决呢,答案是有的,
新建一个xml文本,并命名为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="*.jiajiafe.com" />
</cross-domain-policy>
#把jiajiafe.com换成你自己的网站域名。
把文件保存并上传到你网站根目录,还有关键的一步,
上传页面初始化时加上这个条件:'scriptAccess' : 'always',
$('#s_file_input').uploadify({
'fileSizeLimit' : "1MB",
'fileTypeDesc' : '图片文件',
'fileTypeExts' : '*.gif; *.jpg; *.png',
'multi': false,
'buttonText': '图片上传',
'fileObjName':'upload_file',
'scriptAccess' : 'always'
)}
好了,刷新页面再试一下吧,是不是可以上传了。