加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解决SWFUpload上传文件组件使用时报告2049错误

发布时间:2020-12-15 18:26:23 所属栏目:百科 来源:网络整理
导读:使用SWFUpload上传文件组件开发时可能你会遇到选择文件后点击上传,然后系统报告2049错误的问题。因为其显示的错误很含糊,不清楚是什么地方报出的,但估计应该是在handlers.js文件中的uploadError函数中,因为这个函数会检查errorCode的值,当该函数检查执
使用SWFUpload上传文件组件开发时可能你会遇到选择文件后点击上传,然后系统报告2049错误的问题。因为其显示的错误很含糊,不清楚是什么地方报出的,但估计应该是在handlers.js文件中的uploadError函数中,因为这个函数会检查errorCode的值,当该函数检查执行default规则时就会弹出一个对话框。为了明确断定问题出在此处,我将部分alert函数部分改写成:
??????? alert(“Override==>”+message);
??????? 这样在此执行时,就会发现其报出的错误内容前面会加是“Override==>#2049”,于是我确定问题就是这。在此修改此alert函数,使其输出errorCode的值,会发现errorCode值为-230,检查UPLOAD_ERROR的定义发现,-230表示的是SECURITY_ERROR,即上传违反安全约束。
??????? 从官网上查看,好像也有些人遇到这个问题,但他们提供的解决方案是在swfupload.swf文件所在目录下和服务器的根目录下放置一个crossdomain.xml文件,其内容如下:
?<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
??????? 我的实践告诉我仍然解决不了问题。我的解决办法如下:
??????? 在对SWFUpload进行实例化时要传参数,如果采用完整路径,其中必须保证upload_url和flash_url所使用的服务器描述一致。例如:
??????? (假设服务名为TestServer,其IP为192.168.1.100)
??????? upload_url:"http://TestServer/Test/SFileUpload",
??????? flash_url:"http://192.168.1.100/Test/flash/swfupload.swf",43); font-family:Arial; font-size:14px; line-height:26px">??????? 如果如上代码,则会报告2049错误。你必须将其改成:
??????? upload_url:"http://192.168.1.100/Test/SFileUpload",43); font-family:Arial; font-size:14px; line-height:26px">??????? 或
??????? flash_url:"http://TestServer/Test/flash/swfupload.swf",43); font-family:Arial; font-size:14px; line-height:26px">??????? 要保证两个url对服务器的描述是一致的。另外最后在后面还要加上:
??????? prevent_swf_caching : false,43); font-family:Arial; font-size:14px; line-height:26px">??????? preserve_relative_urls : false,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读