Chrome:使用Javascript从blob创建文件输入?

Mer*_*ion 14 google-chrome blob file input google-chrome-extension

那么,a的files属性input[type=file]是只读的.因此,我无法将blob数据写入此输入元素.

但是如果我使用创建新的输入文件元素Javscript,那么可以在创建时插入blob数据吗?我只对在chrome (extension)其他浏览器中工作的解决方案感兴趣.

gue*_*314 2

new File()构造函数可在 chromium / chrome 38+ 中使用。请参阅文件构造函数示例文件 API

var date = new Date(),
  filename = "file-" + date.getTime() + ".html";

var generatedFile = new File(
  ["<!DOCTYPE html><html><body>" + filename + "</body></html>"]
  , filename
  , {
  type: "text/html",
  lastModified: date
  }
);

var objUrl = URL.createObjectURL(generatedFile);

console.log(generatedFile, objUrl);

var reader = new FileReader();

reader.addEventListener("load", function(event) {
  console.log(event.target.result)
});

reader.readAsText(generatedFile);
Run Code Online (Sandbox Code Playgroud)