问题描述
||
我正在尝试模拟文件上传到接受\“ normal \”文件上传http请求的Web服务器,但是使用典型的input type = file form元素获取文件数据,我希望POST \ ed的内容来自前一个HTTP GET的结果
我想我已经使用类似的方法完成了GET部分
function load_binary_resource(url) {
var req = new XMLHttpRequest();
req.open(\'GET\',url,false);
req.overrideMimeType(\'text/plain; charset=x-user-defined\');
req.send(null);
if (req.status != 200) {
return \'\';
}
return req.responseText;
}
现在的问题是我该如何过帐,以便接受更典型文件上传HTTP请求的服务器代码可以保持不变。
我一直在尝试使用jQuery Forms插件,但是似乎无法将二进制内容POST \ ed到服务器
一切帮助当然热烈欢迎!
谢谢
彼得
解决方法
如果我了解您,并且除非我弄错了,否则您还不能使用XMLHttpRequest通过浏览器本地上传文件。我相信,Firefox现在有可能。
当研究同一件事时,我发现这些有用:
https://developer.mozilla.org/en/XMLHttpRequest
https://developer.mozilla.org/en/using_files_from_web_applications
https://developer.mozilla.org/en/DOM/File.getAsBinary
我已经看到了针对非壁虎浏览器的sendAsBinary的一些解决方法,但是我敢肯定其他人在这方面也了解更多。我放弃了相当类似的东西,因为我的目标浏览器包括IE。我最终使用Uploadify,当纯JavaScript方法不可用时,它将自动切换到Flash或其他方法。
希望能对您有所帮助(甚至与您的要求遥不可及)