Java Playframework多文件上传
我正在使用并希望上载多个pdf文件 HTML部分:Java Playframework多文件上传,java,file,playframework,playframework-2.4,Java,File,Playframework,Playframework 2.4,我正在使用并希望上载多个pdf文件 HTML部分: @helper.form(action = routes.Application.uploadPost, 'enctype -> "multipart/form-data") { <input type="file" id="inputFile" name="pdf" accept="application/pdf" multiple autofocus > <p>
@helper.form(action = routes.Application.uploadPost, 'enctype -> "multipart/form-data") {
<input type="file" id="inputFile" name="pdf" accept="application/pdf" multiple autofocus >
<p>
<input type="submit">
</p>
}
在Java部分,如果我将getFile(“pdf”)
更改为getFiles()
,它会告诉我添加cast。所以它给了我两个选择。一是添加FilePart
cast,二是将pdf的类型更改为List
如果我像这样添加FilePart pdf=(FilePart)body.getFiles()
PlayFramework向我显示了一个异常:[ClassCastException:scala.collection.convert.Wrappers$SeqWrapper无法强制转换为play.mvc.Http$MultipartFormData$FilePart]
如果我将pdf的类型更改为列表
,那么它会向pdf.getFilename()
添加一个强制转换,如下所示:((FilePart)pdf).getFilename()
,同时它也会向File File=pdf.getFiles()
添加两个强制转换:File File=(File)((MultipartFormData)pdf).getFiles()
。如果我运行代码,我也会得到相同的异常
- 在这种情况下,有没有办法上传多个pdf文档李>
import play.mvc.Http.MultipartFormData;
import play.mvc.Http.MultipartFormData.FilePart;
MultipartFormData body = request().body().asMultipartFormData();
for(int i=0; i<body.getFiles().size(); i++) {
body = request().body().asMultipartFormData();
FilePart pdf = body.getFile("pdf"); //getFiles();
String fileName = pdf.getFilename();
File file = pdf.getFile(); //getFiles();
...
import play.mvc.Http.MultipartFormData;
导入play.mvc.Http.MultipartFormData.FilePart;
MultipartFormData body=request().body().asMultipartFormData();
对于(inti=0;i首先,getFiles()和getFile(“pdf”)之间的区别是前者获取文件列表,而后者仅获取一个文件
请尝试以下代码
List<FilePart> fileParts = request().body().asMultipartFormData().getFiles();
for(FilePart filePart : fileParts) {
filePart.getFile();
}
List fileParts=request().body().asMultipartFormData().getFiles();
用于(文件部分文件部分:文件部分){
getFile();
}
谢谢您的帮助。列出fileParts=request().body().asMultipartFormData().getFiles();for(FilePart FilePart:fileParts)
这两行节省了我的时间
List<FilePart> fileParts = request().body().asMultipartFormData().getFiles();
for(FilePart filePart : fileParts) {
filePart.getFile();
}