将Blob对象转换为文件,用于Ms Edge

问题描述 投票:2回答:1

[我有一个Blob对象,它是一个图像,我正在尝试将其转换为文件对象,但是它显示了MS Edge 41版中的错误。我在两次相同的尝试中第一次使用了formdata

尝试1

fd.set('file', blobObj, fileName);
return (fd.get('file'));

这导致错误

对象不支持此属性或方法'set'

尝试2

我将集合替换为append,然后得到了这个

对象不支持此属性或方法'get'

尝试3

我用如下所示的新逻辑完全替换了formdata

  let fileObject = new File([u8arr], fileName, { type: mime });

而且我说错了

对象不支持此操作

还有其他可以使用的方法吗?我可以直接将blob用作文件吗?

javascript file multipartform-data microsoft-edge form-data
1个回答
0
投票

AFAIK,您的第三种方法似乎正在起作用,

通过将MIME类型硬编码为"image/jpeg" / "image/png"并包含已修改的日期,然后进行一次验证来尝试一次

var fileInstance  = new File([blob], "FileName",{type:"image/jpeg", lastModified:new Date()})

如果您在javascript中显示它,则应使用类似以下内容的东西:

var URL = window.URL || window.webkitURL;
var url_instance = URL.createObjectURL(blob);
var image_source = new Image();
image_source.src = url_instance;
document.body.appendChild(image_source); 
© www.soinside.com 2019 - 2024. All rights reserved.