私は、HTMLフォームを処理するために、Javaサーブレットを使用していますが、それは、ファイルの入力要素が含まれていますなぜ、サーブレットは空のHTMLファイル要素にファイルがあると思うのですか?
<input type="file" id="fileUpload" name="file" multiple />
私は一度に複数のファイルを処理するためにthis excellent answerでサンプルコードを使用していました。私が使用しているコードは:
List<Part> fileParts = req.getParts().stream().filter(part -> "file".equals(part.getName())).collect(Collectors.toList()); // Retrieves <input type="file" name="file" multiple="true">
for (Part filePart : fileParts) {
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
// Do stuff here
}
このコードはうまくいきます。私の問題は、何も付いていないとき、私のコードはまだfilePartsにPartオブジェクトがあると考えているということです。一部のデバッグを行うと、Partオブジェクトはそこにあるように見えますが、私はファイルをアップロードしていないので、取得するInputStreamまたはSubmittedFileNameはありません。どうしてこれなの?私はラムダ関数とコレクションを初めて使っていますが、アップロードするファイルを選択しないと、この "fileParts" Collectionは空でなければなりません。
は、ブラウザのネットワークコンソールをチェックしてください。それは空の入力を提出しますか?それでも有効です。 – Savior