2011-11-15 20 views
0

私は1つのリクエストで複数のファイルをアップロードしようとするが、それは常にエラー、マイビューコード:プレイフレームワーク複数のファイルのアップロード

<input type="file" name="files[]" multiple> 

そして:

public static void doUpload(File[] files) { 
    File dir = new File(Play.applicationPath+File.separator+"public"+File.separator+"uploads"); 
    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    boolean success = files.renameTo(new File(dir, files.getName())); 
    if (!success) { 
     renderText("{'success':'true', 'msg':{'url':'"+files.getName()+"'}}"); 
    } else { 
     renderText("{'success':'true'}"); 
    } 
} 

私は<input type="file" name="files">で単一のファイルのアップロードを使用している場合そして制御器のパラメータはFile filesを使用しています。

ありがとうございました。

+0

stacktraceのエラーは何ですか? –

答えて

1

複数の入力が同じ名前である場合、コントローラは指定された名前のファイルを配列として受け取ります。

コントローラー:

public static void upload(File[] files) { 
    ... 
} 

ビュー:

#{form @upload(), enctype:'multipart/form-data'} 
<input type="file" name="files"> 
<input type="file" name="files"> 
<input type="file" name="files"> 
<input type="submit" value="Upload" /> 
#{/form} 

あなたはいつもこれがで正常に動作し、ユーザがクライアント側

0

に追加入力を追加できるようにするためにはJavaScriptのビットを追加することができます<input type="file" name="files" multiple>に複数のタグを付けて1.2.5を再生します。元のポスターのコードで表示される唯一の問題は、

です。以前のバージョンのPlayにもバグがあった可能性がありますが、これは私にとってはうまくいきました。ファイルが1つのファイル)

関連する問題