如何使用多部分编码上传文件? (可能用八位字节或其他东西)

时间:2013-12-02 17:38:39

标签: javascript html http

我们希望我们的网络应用程序能够从浏览器上传文件(用户以标准方式选择文件)但是ajax或不是ajax并且更喜欢文件占用POST的整个主体而没有其他内容body(即我们并不真正想要所有其他字段,只需要文件内容)

我读到一些关于可能有一种方法可以用ajax做到这一点,但似乎无法找到任何与application / octect-stream或其他相关的信息。

之前有没有人这样做过,html / javascript是什么样子才能正常工作,这也是一个分块文件而不是作为一个巨大的东西发送到网络服务器。

html 5中有什么东西可以帮到这里。

感谢, 迪安

2 个答案:

答案 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进行的并行操作。

这只是另一个答案我认为我会在这里添加完整的选择,我认为我们都有。