作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我可能在这里遗漏了一些简单的东西,但是我如何在给定从 AJAX 请求接收到的二进制数据的情况下在 JavaScript 中创建一个文件对象?
$.ajax({
url: "http://example.com/image.jpg",
success: function(data) {
// Convert binary data to File object
}
});
最佳答案
我终于明白了。为了避免跨站点脚本问题,我在我的服务器上创建了一个代理端点。然后我可以将图像 URL 传递到我的服务器,然后服务器对远程文件执行 GET 请求,将响应转换为 Base64,并将其发送回浏览器。然后,浏览器可以将数据转换回二进制并创建一个 Blob(就我的目的而言,它与文件一样好)。
$.ajax({
url: apiRoot + "/proxy",
data: {url: "http://example.com/image.jpg"},
success: function(data) {
var binary = atob(data.split(',')[1]);
var array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
var file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
});
关于javascript - 如何在 JavaScript 中从二进制数据创建文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283772/
我是一名优秀的程序员,十分优秀!