如何上传文件不使用多部分编码?(可能使用八位字节或其他什么)
how to upload file NOT using multipart encoding? (maybe use octect or something)
我们希望我们的web应用程序能够从浏览器上传文件(用户以标准方式选择文件),但无论是ajax还是非ajax,我们都希望该文件占据POST的整个主体,而主体中没有其他内容(即,我们真的不想要所有其他字段,只需要文件内容)
我读到一些关于ajax可能有一种方法可以做到这一点,但似乎找不到任何与application/octect流或其他相关的信息。
以前有人这样做过吗?html/javascript是什么样子的才能正确工作,这样这也是一个分块文件,而不是作为一个巨大的东西发送到Web服务器。
html 5中有什么对这里有帮助吗。
谢谢,Dean
这很简单,只需将blob/文件作为参数传递给您对XHR实例上的send方法的调用,例如:
function uploadFile(blobOrFile) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://mydomain.com/upload", true);
xhr.send(blobOrFile);
}
请注意,这仅适用于File API浏览器(即IE9及更早版本)
我想我最终会像这段代码一样尝试websockets方法(刚刚发现)
https://github.com/jberger/GalileoSend/blob/master/js/galileo_send.js
因为我们在负载均衡器后面有4个无状态服务器,如果我使用xmlhttprequest方法,我会在不同的服务器上得到块,只要我复制要放在每个块中的文件的头,但我只是决定放弃这一点,转而使用websocket,希望这也能稍微减少http开销,尽管我会错过一些与xmlhttprequest的并行性。
这只是我想在这里补充的另一个答案,以完成我认为我们都有的选择。
相关文章:
- Javascript 将 int 值转换为八位字节流数组
- 将数字转换为16位浮点(存储为字节)并返回
- 如何上传文件不使用多部分编码?(可能使用八位字节或其他什么)
- 计算数组的位/字节大小
- 是否可以流式传输在 javascript 中生成的八位字节流
- 从 IEEE 754 单精度(32 位)浮点(字符串表示)创建字节
- 将 IP 地址拆分为八位字节,然后对每个八位字节进行一些数学运算
- 将base64中的图像发送到Web服务-'应用程序/八位字节流'不是预期的类型'text/xml
- 资源被解释为图像,但使用MIME类型的应用程序/八位字节流传输
- 位操作:检测是否设置了至少 5 位字节
- 将数字转换为完整二进制八位
- 如何有效地从字节中读取位
- JavaScript:一个字节应该是8位
- 如何得到一个字节的最后2位
- 在javascript中将32位整数转换为4字节的数据
- 如何将多字节字符串数组转换为32位整型数组
- 八进制数的位运算
- 如何将Javascript字符串转换为八位字节/字符数组
- 为什么这个代码有超过4个字符的3个八位字节
- JavaScript:读取8字节到64位整数