我们希望我们的网络应用程序能够从浏览器上传文件(用户以标准方式选择文件)但是ajax或不是ajax并且更喜欢文件占用POST的整个主体而没有其他内容body(即我们并不真正想要所有其他字段,只需要文件内容)
我读到一些关于可能有一种方法可以用ajax做到这一点,但似乎无法找到任何与application / octect-stream或其他相关的信息。
之前有没有人这样做过,html / javascript是什么样子才能正常工作,这也是一个分块文件而不是作为一个巨大的东西发送到网络服务器。
html 5中有什么东西可以帮到这里。
感谢, 迪安
答案 0 :(得分:2)
执行此操作非常简单,只需将blob / file作为参数传递给XHR实例上对send方法的调用,例如:
function uploadFile(blobOrFile) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://mydomain.com/upload", true);
xhr.send(blobOrFile);
}
请注意,这仅适用于File API浏览器(即不是IE9及更早版本)
答案 1 :(得分:0)
我想我最终会尝试像这段代码那样的websockets方法(刚发现这个)
https://github.com/jberger/GalileoSend/blob/master/js/galileo_send.js
因为我们在负载均衡器后面有4个无状态服务器,如果我使用xmlhttprequest方法,我最终会在不同服务器上使用块,只要我复制要放入每个块的文件头,我刚刚决定放弃这个并做websocket,希望也可以减少http的开销,虽然我会错过一些我可以用xmlhttprequest进行的并行操作。
这只是另一个答案我认为我会在这里添加完整的选择,我认为我们都有。