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

Nai*_*mar 4 javascript pdf file reactjs

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

\n\n

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

\n\n

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

\n\n
File(61)\xc2\xa0\n{\n   name: "ICT_zbbihfc_dummy.pdf", \n   lastModified: 1548148972779, \n   lastModifiedDate: Tue Jan 22 2019 17:22:52 GMT+0800 (Singapore Standard Time), \n   webkitRelativePath: "", \n   size: 61,\n   type: "application/pdf",\n   webkitRelativePath: ""\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 JavaScript 中的。

\n

Nai*_*mar 5

PDF 或图像的 Blob 对象 url 转换为 File 对象

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
           });
//------- 
Run Code Online (Sandbox Code Playgroud)

Image 的 Base64 转换为 File 对象

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
           });
//------- 
Run Code Online (Sandbox Code Playgroud)