2

バックエンドJavaでJqueryファイルアップロードを使用しました。取得しています

if(ServletFileUpload.isMultipartContent(request) is true.

しかし

List<FileItem> items = uploadHandler.parseRequest(request);

空を返します。以前にリクエストパラメーターにアクセスしたことがありません。

私はそれをグーグルで検索し、web.xml を から/*に 変更/*.actionすると問題が解決することがわかりました。しかし、この変更により、struts2 プロジェクトは実行されなくなりました。

4

1 に答える 1

1
  1. その変更は意味がありません。両方の値 (*//*.action) が間違っています/*

  2. マルチパートリクエストを自分で解析するべきではありません。特に、Apache Commons FileUpload のようなツールがあり、おそらくあなたよりも優れている場合はなおさらです。BalusC の引用:

    このようなストリームを解析するには、マルチパート フォーム データ リクエストがどのように指定され、構造化されているかについての正確な背景知識が必要です。完全なマルチパート パーサーを作成するには、多くのコードを記述する必要があります。しかし幸いなことに、何年にもわたってその堅牢性が証明されている Apache Commons FileUpload があります。

  3. Struts2 はすでにそれを処理しています。Struts2 でファイルのアップロード プロセスがどのように機能するかを理解するだけで十分です。

    最初に要素内の単一のファイルを<s:file/>試し、次に内の複数のファイルを<s:file/> 試し、最後にBlueimp の jQuery-File-Uploadを方程式に追加します。

    外部ライブラリでは、 Dropzone.js (ドラッグ アンド ドロップ アップローダ)の場合のように、小さな変更が必要になる場合があることに注意してください。

于 2014-11-20T09:35:28.007 に答える