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

标签 javascript file multipartform-data microsoft-edge form-data

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

尝试 1

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

这导致了一个错误

object doesn't support this property or method 'set'

尝试 2

我用 append 替换了 set 然后我得到了这个

object doesn't support this property or method 'get'

尝试 3

我用一个看起来像这样的新逻辑完全替换了 formdata

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

我得到一个错误提示

object doesn't support this action

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

最佳答案

据我所知,您的第三种方法似乎有效,

尝试一次将 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); 

关于javascript - 将 Blob 对象转换为文件,对于 Ms Edge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029119/

相关文章:

java - 如何在我的 Java 项目文件中找到我的文件的路径?

javascript - lite-uploader 无法处理多个文件

C#,将 HTTP 内容写入 FileStream 时出现问题,无法访问已关闭的文件

python - 使用python请求通过表单数据上传图像

javascript - 使用 JavaScript 将 SharePoint 文档库文件输出到 CSV 文件

javascript - 如何去除网格行的边框底线?

c - fput 上的段错误

javascript - 如何显示带有复选框的div并取消选中其他复选框的其他复选框

javascript - 计算用户使用 jquery 或 javascript 将元素悬停了多少秒?

python - 正确格式化多部分/表单数据主体