Node.js:是否可以将BLOB转换为文件并使用Shell使用默认应用程序将其打开?

时间:2019-02-26 03:25:47

标签: javascript jquery node.js electron

使用shell,我们可以通过默认应用程序打开文件。但是可以将blob转换为文件吗?

var fileurl = '';	//url of a file, example is docx file.
var filename = $(this).text().replace(/^\s+/g, '');

$.ajax({
        url: fileurl,
        method: 'GET',
        xhrFields: {
            responseType: 'blob'
        },
        success: function (data) {
          //convert the blob into file
          var file = new File([data], filename, {type: data.type, lastModified: Date.now()});
          const {shell} = require('electron');
          shell.openItem(file); //open the converted file with it's default application
        }
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

我试图将Blob转换为文件,以为它可以工作,但失败了,并且错误提示Error processing argument at index 0, conversion failure from #<File>

1 个答案:

答案 0 :(得分:0)

电子shell.openItem(filepath:string)明确需要现有本地文件的路径。 https://electronjs.org/docs/api/shell#shellopenitemfullpath

除非将文件保存到临时位置,否则无法直接传递blob。