2

ファイルをアップロードしたり、入力としてリストをアップロードしたりできるサーブレットを作成しました。これまでは、サーブレットがmultipart / form-dataを受け入れるように設定して処理してきたので、ファイルがなくてもリストを一部として読みました。

現在、このサーブレットを呼び出して、フォームではなくJQueryAJAXメソッドを介してリストをアップロードしようとしています。メソッドを使用してリストを通常どおりアップロードしようとすると、次のようになります。

org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8

contentTypeをmultipart/form-dataとして次のように設定すると、次のようになります。

$.ajax({    
    url: someUrl, 
    type: 'POST', 
    contentType: 'multipart/form-data', 
    data: {list: inputList}
});

代わりにこのエラーが発生します:

org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

私の質問は、両方のコンテンツタイプを受け入れるようにサーブレットを構成する方法があるかどうか、あるいは、マルチパート/フォームデータをアップロードするためにajaxデータを書き込む方法があるかどうかです。

FormDataAPIを使用してmultipart/form-dataをアップロードするのは簡単ですが、IE9をサポートする必要があるため、これはオプションではありません。

4

1 に答える 1

1

Apache Commons FileUploadライブラリを使用することをお勧めします。送信されたフォームの種類に関係なく、統一されたインターフェイスを提供し、アップロードされたファイルを簡単に操作できるようにします。ユーザー ガイドのセクションアップロードされたアイテムの処理を参照してください。

于 2012-08-09T17:13:59.860 に答える