Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Playframework多文件上传_Java_File_Playframework_Playframework 2.4 - Fatal编程技术网

Java Playframework多文件上传

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>

我正在使用并希望上载多个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>
            <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文档
半代码:(如果需要,我可以添加完整的代码。其余的代码是使用PDFBox进行解析,并索引到Solr和HBase中

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();
}