2017-02-28 6 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"> 

を忘れありこれを回避する、私はまだ

$('.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"); 
     } 

が可能である。この最後のファイルへのアクセス権を持つことができるように、おそらく一時的な入力クラスを作成し、これまで以上.filesをコピーしますか?

+0

ファイル入力 – epascarello

+0

関数コピーの値を設定することはできません(){ するvar 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オブジェクトのコピーを作成できます。または、FormDataFormData.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"); 
    } 
}); 
関連する問題