添加一个文件(JS对象)到输入类型="文件"

时间:2016-08-11 19:54:42

标签: javascript file fileapi html-input

我需要一种方法将File对象添加到文件输入字段。

请注意我不想{file}} 文件字段。 (这是一个安全隐患,......我知道)
我已经拥有文件本身(及其所有内容!)

我正在创建这样的File对象:

canvas.toBlob(function(blob) {
  var file = new File([blob], 'file.png');
  // and now I want to add MY File to the input here
});

请不要告诉我如何上传文件,我知道XMLHttpRequest Level 2.我想将文件上传到外部网站(可能使用用户脚本或类似的东西)。

那么,我该怎么做呢? 或者,如果它不可能:为什么我不能添加我实际拥有的文件(因为我在浏览器中创建它(作为虚拟文件,在用户文件系统中甚至不存在))我也拥有的输入字段? (从技术上讲,输入字段可能是我自己的,这在这里无关紧要)

1 个答案:

答案 0 :(得分:0)

不,你不能。

取自here

  

您似乎想要从drop事件中获取File对象并将其分配给元素。不幸的是,你做不到。只有用户才能选择文件;您无法动态更改将上传的文件,因为出于安全原因,浏览器会拒绝JavaScript此功能。