2016-09-06 5 views
8

ファイルの優先順位を並べ替えることができる形式で複数のファイルアップローダを実装したい(私はドラッグ可能なソート可能なJqueryツール)。1つの<input type = file>から別のファイルにHTMLファイルオブジェクトを渡す

したがって、私のように複数のファイルの入力を追加しました:

<input type = "file" multiple> 

私はいくつかのファイルを選択したときに今、それは3つのファイルが選択されたと言う示しています。 しかし、私は3つのファイルを選択すると、私は3つの部分でファイルのアップローダーを分割したいので、ユーザーがそれに応じて優先順位を設定することができます。 Iは、ファイルリストのオブジェクトの配列を分割し、別の入力に各オブジェクトを割り当てることができないと思っている

$('.files').change(function(e){ 
var filesSelected = e.target.files; 
if(filesSelected.length > 1){ //if user selects multiple files, then automatically split the files into multiple divs so that he/she may do the ordering of files 
    //Here I want to create a list of all the files and implement the draggable and sortable thing. 
} 
}); 

状況は、次のとおりです

は、そのために私は次のコードの種類を使用しています。

希望私は疑いの余地はないと思いますが、そのようなフォーラムに投稿するのは初めてのことなので、ご理解いただけます。

+0

input type = file要素がクラスファイル –

答えて

0

私が受けたポストと簡単な議論から、プログラムでファイル値を設定するとセキュリティ上の脅威になるため、適切な選択肢ではないことが明らかです。私の問題を解決する限り、アップロードされるファイルのファイル名を含む複数のdiv /フィールドを作成し、そのdivのセットにドラッグ・アンド・ドロップ/ソート機能を適用する方法を見つけることをお勧めします。このようにすれば、ユーザはファイルの優先順位を簡単に設定でき、フォームを保存している間は、ファイルデータをデータベースに保存する前に、優先順位を含む配列/フィールドを考慮しなければなりません。

応答者の迅速な対応により、

3

あなたは、選択したファイルを反復処理し、次にあなたがプログラム的<input type="file">に値を設定することはできません。この

$('.files').change(function(e){ 
var filesSelected = e.target.files; 
if(filesSelected.length > 1){ 
    for(var i=0;i<filesSelected.length;i++) { // We iterate through the selected Files 
     $("#idFromParentElement").append('<div> id=File'+i+'</div'); // Then we create and append the new div to the parent element of our choice 
     var fileId = 'File'+i; 
     $("#fileId").data("file",filesSelected[i]); //After that we include a data into the div with the selected file. 
    } 
} 
}); 
+0

Thanks Javierで配置されていると仮定してください。しかし、データ部分が私にとってうまくいかないようです。複数のdivを作成するのではなく、ループ内に複数の入力タイプを作成し、選択した入力タイプからそれぞれの新しい入力フィールドにファイルを割り当てたいとします。 –

+1

他の答えでZoliが言ったように、入力フィールドをプログラマチックに設定することは、一般にセキュリティリスクです。たぶんあなたはjavascriptにFileListを格納し、配列上のファイルの位置を格納するdivを作成することができます。そうすれば、データを使用せずに良好なセキュリティを維持しながら同じ結果を得ることができます。 –

+0

はい私はファイル名を取得し、そのセットに実装されているファイル名とソート可能/ドラッグ可能な機能を持つdivの別のセットを作成し、フォームの保存時にそれに従って処理するほうがよいでしょう。 –

3

などのファイルからのデータが含まれている動的にjQueryを使ってdiv要素を作成しようとすることができます。これは大きなセキュリティフローになります。あなたのコンピュータから任意のファイルを自動的にアップロードするウェブサイトを想像してみてください。

+0

プログラムで値を設定するのではなく、マルチファイルアップローダを使用して複数のファイルを選択して、FileListの配列であるFileListを作成します。この配列を使用して、それを反復して各要素を選択し、新しい入力フィールドに割り当てます。そのタイプはファイルでなければなりません。 –

+1

私の見解からは、これはファイルタイプの入力に任意の値を設定することです。 –

+1

合意。私はその問題に対する答えを見つけたと思う。お返事をありがとうございます –

関連する問題