解决SWFUpload上传文件组件使用时报告2049错误
2012-10-29 13:58
513 查看
使用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文件,其内容如下:
我的实践告诉我仍然解决不了问题。我的解决办法如下:
在对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",
如果如上代码,则会报告2049错误。你必须将其改成:
upload_url:"http://192.168.1.100/Test/SFileUpload",
flash_url:"http://192.168.1.100/Test/flash/swfupload.swf",
或
upload_url:"http://TestServer/Test/SFileUpload",
flash_url:"http://TestServer/Test/flash/swfupload.swf",
要保证两个url对服务器的描述是一致的。另外最后在后面还要加上:
prevent_swf_caching : false,
preserve_relative_urls : false,
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",
如果如上代码,则会报告2049错误。你必须将其改成:
upload_url:"http://192.168.1.100/Test/SFileUpload",
flash_url:"http://192.168.1.100/Test/flash/swfupload.swf",
或
upload_url:"http://TestServer/Test/SFileUpload",
flash_url:"http://TestServer/Test/flash/swfupload.swf",
要保证两个url对服务器的描述是一致的。另外最后在后面还要加上:
prevent_swf_caching : false,
preserve_relative_urls : false,
相关文章推荐
- 解决SWFUpload上传文件组件使用时报告2049错误
- 解决ASP无组件上传错误(上传超过200kB 的文件):Request 对象 错误 'ASP 0104 : 80004005' 不许操作
- 通过FF、chrom浏览器使用swfupload上传文件出现404错误的解决办法
- 使用swfupload上传文件出现中文乱码现象的解决方法
- 使用CURL上传文件和数据时提示Array to string conversion错误,解决方法!
- ASP 在Windows 2003 server使用纯代码上传大文件遇到的错误,及解决方法
- 使用WebClient上传文件时的错误问题解决
- firefox、chrom浏览器使用swfupload上传文件出现404错误的解决办法
- 使用spring mvc上传文件的常见错误解决办法
- 使用WebClient上传文件时的错误问题解决和上传例子
- 使用swfupload上传超过30M文件,使用FLASH上传组件
- 解决Ruby On Rails下使用SwfUpload等Flash上传组件取不到Session
- 使用WebClient上传文件时的错误问题解决
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- 使用WebClient上传文件时的错误问题解决
- 解决使用FireFox下Flash上传文件时SESSION丢失的问题(swfupload)
- 使用swfupload上传超过30M文件,使用FLASH上传组件
- 使用swfupload上传文件出现中文乱码现象的解决方法
- 使用WebClient上传文件时的错误问题解决
- asp无组件上传文件超过200k就提示错误的解决方法