1

2 つの要素がある JSP/HTML フォームがあります。1 つは選択ドロップダウンで、もう 1 つはファイル アップロード ボックス (input type="file") です。POST メソッドと enctype を form-multipart として使用します。MultipartRequestオブジェクトを使用して、ドロップダウン リストとファイルの両方にアクセスします。問題ありません。

しかし、ファイルをアップロードせず、次のような受信フォームでコードを使用する場合

MultipartRequest multipartRequest = new MultipartRequest(request,".",5*1024*1024);
String dummySelect= (String) multipartRequest.getParameter("dummy");
out.println("<BR>select is "+dummySelect);
Enumeration files = multipartRequest.getFileNames();

理想的には、ファイルをアップロードしない場合は、空の列挙子を取得する必要があります.Meaning

while(files.hasMoreElements())発生していない false と評価する必要があります。理由を教えてもらえますか? これにより、nullPointerException が発生します。

4

2 に答える 2

0

送信するコンテンツ タイプが (正確に) 2 つのうちの 1 つであることを確認してください。

  • application/x-www-form-urlencoded
  • マルチパート/フォームデータ

リンクしたAPIによると、クラスは後者のタイプのみを処理します。

または、Apache commons FileUploadライブラリを試すこともできます。

于 2009-08-31T10:20:34.830 に答える
0

getFileNames() メソッドの javadoc を見てください。ページでファイル入力が空のままの場合、結果は null であり、ページにファイル入力がまったくない場合にのみ空の列挙が返されると書かれています。なぜこの奇妙な実装になっているのかはわかりませんが、ドキュメントにはそう書かれています...

編集:私はそれをすべて間違っていると思います-空のままのファイル入力であっても列挙に何かがあるはずです(またはその場合に空の列挙を取得する必要があります...わかりません、ドキュメントはあまり明確ではありません自分)。

于 2009-08-31T10:24:52.310 に答える