如何镜像输入类型=文件

时间:2013-05-28 17:10:57

标签: javascript mirror input-type-file

在为下面的pic1选择文件后,是否可以将所选文件自动镜像到第二个表单字段? 我刚开始学习javascript - 我该怎么做呢? 请详细说明 - 谢谢!

1 个答案:

答案 0 :(得分:0)

您不能这样做 - 作为安全预防措施,没有网站可以为<input type="file" />定义值,也没有脚本可以为其设置值(您获得Uncaught Error: InvalidStateError: DOM Exception 11

然而,所有内容都不会丢失,因为您可以使用 JavaScript 访问用户选定的文件,并将其存储在内存中以供日后使用。 HTMLInputElement DOM界面为您提供了一个属性files(一个FileList),可让您将所选项目作为File个实例进行访问,而这些实例又可以像 Blob 通过FileReader的实例。

FileReader 可让您选择

  • readAsArrayBuffer
  • readAsBinaryString
  • readAsDataURL
  • readAsText

对于example,如果您想将数据存储为 dataURI

var myInputElement = document.getElementById('pic1'); // the <input />
// assuming file already chosen
var fr = new FileReader(); // instance of FileReader
fr.onload = function (e) { // task to do when finished reading file
    console.log(this.result); // view in console
};
fr.readAsDataURL(myInputElement.files.item(0)); // start read