首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从blob url (URL.createObjectURL())创建pdf文件对象

如何从blob url (URL.createObjectURL())创建pdf文件对象
EN

Stack Overflow用户
提问于 2019-01-22 09:32:30
回答 2查看 3.2K关注 0票数 4

我使用url: URL.createObjectURL( file )创建了PDF文件的对象url。

例如url = blob:http://0.0.0.0:5002/e468fb70-d597-4b17-bb3a-ec6272f2d7fe

现在我想做的是,从url=blob:http://0.0.0.0:5002/e468fb70-d597-4b17-bb3a-ec6272f2d7fe中读取pdf并创建类似的文件对象

代码语言:javascript
复制
File(61) 
{
   name: "ICT_zbbihfc_dummy.pdf", 
   lastModified: 1548148972779, 
   lastModifiedDate: Tue Jan 22 2019 17:22:52 GMT+0800 (Singapore Standard Time), 
   webkitRelativePath: "", 
   size: 61,
   type: "application/pdf",
   webkitRelativePath: ""
}

这是在Javascript里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-23 01:58:04

将PDF或图像的Blob对象url转换为文件对象

代码语言:javascript
复制
var file_object = fetch('blob:http://0.0.0.0:5002/e468fb70-d597-4b17-bb3a-ec6272f2d7fe') 
          .then(r => r.blob())
          .then(blob => {
              var file_name = Math.random().toString(36).substring(6) + '_name.pdf'; //e.g ueq6ge1j_name.pdf
              var file_object = new File([blob], file_name, {type: 'application/pdf'});
              console.log(file_object); //Output
           });
//------- 

将图像的Base64转换为文件对象

代码语言:javascript
复制
var file_object = fetch('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA') 
          .then(r => r.blob())
          .then(blob => {
              var file_name = Math.random().toString(36).substring(6) + '_name.jpeg'; //e.g ueq6ge1j_name.jpeg
              var file_object = new File([blob], file_name, {type: 'application/jpeg'});
              console.log(file_object); //Output
           });
//------- 
票数 5
EN

Stack Overflow用户

发布于 2019-01-22 09:45:16

你在一条评论中澄清:

我正在从输入标签中选择文件。在那之后,我创建了它的blob url。现在,在提交按钮上,我希望将文件从blob中读取为文件Object..then,将文件对象发送到服务器。

这样做不需要File对象。您可以简单地发送Blob,例如使用FormDataappend方法,它接受Blob的。

但是:如果您拥有input,并且已经从inputfiles数组中获得了files,那么您最好直接使用它,而不是读取它并创建一个Blob

可能值得指出的是,input type="file"元素有一个 attribute,可以用来指定它可以用于多个文件(这就是为什么files属性是一个集合)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54305142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档