javascript - 如何将 Blob 对象转换为文件并将其发送到服务器
问题描述
我想将 javascript 中的 blob mp3 音频对象转换为文件并发送到服务器。
所以这是我的代码:
function createDownloadLink(blob,encoding) {
var url = URL.createObjectURL(blob);
var au = document.createElement('audio');
var li = document.createElement('li');
var link = document.createElement('a');
// Put in the server
var token = $("#token").val();
var formData = new FormData();
formData.append("_token", token);
formData.append('audio', blob);
$.ajax('https://myip/audio', {
method: "POST",
data: formData,
processData: false,
contentType: false,
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
服务器的响应如下:
{"_token":"3Qtbk53PLvzTzDBZrYwZY9WrHC7I6jmy9G6Aj6zw","audio":{}}
当我将 console.log 设置为 blob 对象时,出现此
Blob {size: 32914, type: "audio/mpeg"}
size: 32914
type: "audio/mpeg"
__proto__: Blob
arrayBuffer: ƒ arrayBuffer()
size: (...)
slice: ƒ slice()
stream: ƒ stream()
text: ƒ text()
type: (...)
constructor: ƒ Blob()
Symbol(Symbol.toStringTag): "Blob"
get size: ƒ size()
get type: ƒ type()
__proto__: Object
有什么想法可以解决这个问题吗?
解决方案
以下片段将 a 转换blob
为file
并将其附加到 formdata
const blobFile = new File([blob], 'your_file_name');
formData.append("audio", blobFile);
但是blob
也应该可以正常工作,因为文件也是一个 blob。
推荐阅读
- swift - 当节点值未知/自动生成 Swift 时更新 Firebase 中的子值
- android - 如何在 dagger2 中使用构造函数 @Inject 数据类
- react-native - React native branch.io 共享内容问题
- sharepoint - 提取某个值并将其显示在 Sharepoint 的不同页面上
- c# - 使用 azurite 测试 Azure Blob 存储
- qt - 如何在 QML 项目中显示本地目录中的多个图像?
- android - Android Camera2:即时更改输出表面集的最佳和快速方法
- javascript - 将 utf8 字符串(图像)解码为 node.js 中的缓冲区/图像
- javascript - 带有 JSX 和类的 ReactJS 'Hello World' 不会向浏览器打印任何内容
- fish - 创建不需要回车且不显示警告的鱼壳 prevd 键绑定