私はJavaFileUploadを使用しています。複数のpdfファイルをアップロードしたいと思います。Playframework複数ファイルアップロード
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>
}
私は私が正常にアップロードしたいすべてのPDFドキュメントを取得できるようにする)(body.getFile("pdf") as
body.getFilesを変更する必要があります。 getFiles()
を使用すると、すべてのドキュメントを見ることができます。getFile("pdf")
を使用すると、最初のドキュメントが選択されます。
getFile("pdf")
getFiles()
よう変更した場合、Javaの部分の違い
getFiles()
間と
getFile("pdf")
output of getFiles(): [[email protected], [email protected], [email protected], [email protected], [email protected]]
output of getFile("pdf"): [email protected]
です。だから私には2つの選択肢があります。一つは、第二、FilePart
キャストを追加することで、このFilePart pdf = (FilePart) body.getFiles();
PlayFrameworkは私に例外を示すように、私はgetFiles()
ためFilePart
キャストを追加した場合List<FilePart>
にPDFファイルの種類を変更することです:私は、その後、List<FilePart>
にオファーをしてPDFファイルの種類を変更した場合[ClassCastException: scala.collection.convert.Wrappers$SeqWrapper cannot be cast to play.mvc.Http$MultipartFormData$FilePart]
を私はこのようにpdf.getFilename()
にキャストを追加する:((FilePart) pdf).getFilename()
、またFile file = pdf.getFiles()
に2つのキャストを追加するために私に提供します:File file = (File) ((MultipartFormData) pdf).getFiles()
。コードを実行すると、同じ例外が発生します。
- この場合、複数のpdfドキュメントをアップロードする方法はありますか?
ハーフコード:。必要であれば(私は完全なコードを追加することができ、コードの残りの部分は、SolrのにPDFBoxとインデックスを使用して解析しているとの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();
...
プレイフレームワークのバージョン:2.4
ありがとうございました。 'リスト fileParts =リクエスト()。body()。asMultipartFormData()。getFiles(); (FilePart filePart:fileParts) 'これらの2行は私の日を節約しました –
問題はありません。 – LES