4540

[code]

    <input file="file" name="files" multiple="multiple" />
    
[/code]

によって複数選択されたファイル(例として5つ選択されたとします)を

[code]

    <input file="file" name="files[0]" />
    <input file="file" name="files[1]" />
    <input file="file" name="files[2]" />
    <input file="file" name="files[3]" />
    <input file="file" name="files[4]" />
    
[/code]

のように Javascript 等で分割して、 form を submit することは可能でしょうか。

サーバサイド( SAStruts で構築)の都合で `multiple`属性 が設定されたフォームの入力を  
受け取ることができません・・・。

以下経緯になります。

  1. `multiple`属性を設定することで可能になる複数ファイル選択は利用したい
  2. しかし SAStruts だと `multiple`属性 が設定された `input="file"` を配列、または `List` で受け取ろうとしてもできない(実現する方法が見つからなかった, 分割した形式であれば受信できた)
  3. なので Javascript で、複数ファイルが選択されたタイミングで `multiple`属性が設定された `input="file"` を分割しようと思った

という流れです。

解決方法として

  1. 上記の経緯の通りに、 `input="file"` を分割する
  2. 何かしらの方法で SAStruts で `multiple`属性 が設定されている `input="file"` を受信する
  3. そもそも不可能で、分割する前に複数のmultipleが設定されていない `input="file"` を用意する

このいずれかの方法に関してご存知の方いましたらアドバイスいただけないでしょうか。  
よろしくお願い致します。(このアプリケーションでは jQuery も併せて利用しています。)


CC BY-SA 3.0
2015-01-14T07:57:44.007
4539
2015-01-14T09:20:19.257
2015-01-14T08:23:30.950
4978
5836
question
javascript java jquery sastruts
input タグ multiple 属性で選択させた複数のファイルを、個別のクエリパラメータに分けて送信したい


こんな感じでしょうか `#my_input`から`.input_0`~とかに振り分けます

[code]

    var files = $("#my-input")[0].files;
    for (var i = 0; i < files.length; i++){
        $(".input_"+i)[0].files = files;
        $(".input_"+i)[0].files[0] = files[i];
    }
    
[/code]


CC BY-SA 3.0
2015-01-14T08:10:58.610
4540
2015-01-14T09:20:19.257
2015-01-14T09:20:19.257
525
525
4539
answer