2017-02-28 60 views
0

如果我打开一个文件选择,选择一个文件,然后单击文件再次选择,然后单击取消,它忘记了最初选定的文件复制/克隆到另一个文件输入

//Main input 
<input type="file" class="input" id="input" name="avatar"> 

//Backup input 
<input type="file" class="input_two" id="input_two" name="avatar_two"> 

是否有解决方法对于这一点,有可能创建一个临时输入类,并在复制.files这一个,这样我仍然可以访问的最后一个文件

$('.input').change(function() { 
     var value = this.files; 
     console.log(value); 
     if(value.length > 0) 
     { 
      $(.avatar_two).assign(value)... //This is what i want to do 
     } 
     else 
     { 
      console.log("nada"); 
     } 

这可能吗?

+0

不能设置的文件输入 – epascarello

+0

函数副本中的值() { 变种myObject的,F; myObject = new ActiveXObject(“Scripting.FileSystemObject”); f = myObject.file.copy(“c:\\ test.txt”,“c:\\ mytest.txt”); } – Sarma

+0

ActiveX?是90年代吗? – epascarello

回答

4

不可能设置 .files属性 <input type="file">元素,其中引用只读 FileList对象。 参见React/Javascript--FileReader/<input/>/adding image。您可以拨打File.prototype.slice()创建File对象的副本。或使用FormData,FormData.prototype.append()来存储选定的文件。

var clone, i = 0; 
var fd = new FormData(); 

$('.input').change(function() { 
    var value = this.files; 
    console.log(value); 
    if (value.length > 0) { 
     clone = value[0].slice(0, value[0].size, value[0].type); 
     fd.append("file-" + (i++) /* this.name */, value[0]); 
    } else { 
     console.log("nada"); 
    } 
});