Tho*_*mas 4 upload frameworks file playframework
我尝试用一个请求上传多个文件.我的代码如下所示:
<form action="/application/overviewsubmit" method="POST" enctype="multipart/form-data">
<input type="file" name="files">
<input type="file" name="files">
<input type="submit" value="Run...">
</form>
Run Code Online (Sandbox Code Playgroud)
和控制器:
public static void overviewSubmit(List<File> files){
System.out.println(files);
}
Run Code Online (Sandbox Code Playgroud)
如果两个文件都由用户设置,则它可以正常工作.但是,如果用户只选择其中一个并保持另一个不变,则文件始终为空.
我发现了一种hackish方式.
你必须导入play.data.Upload或play.data.*
public static void overviewsubmit(File fake) {
List<Upload> files = (List<Upload>) request.args.get("__UPLOADS");
for(Upload file: files) {
Logger.info("Size = %d", file.getSize());
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有File fake参数,方法将无法处理multipart/form-data,您将得到一个空request.args数组.如果有人知道它的播放/标准注释,请告诉我:)
您可以查看其他有用的功能 - http://www.playframework.org/documentation/api/1.2.3/play/data/FileUpload.html
希望它能解决你的问题.