1

IE9 で、ファイルを含むフォーム (enc-type: multipart/form-data) を Java サーブレットに送信すると、問題が発生します。エラーを見つけて解決策を見つけるのに苦労しています。機能していない場合、Content-Length は 0 です。それがリクエストヘッダーの唯一の違いです。そして、リクエストメッセージに違いはありません。

Java serlvet でフォーム データを取得する方法 (org.apache.commons を使用):

ServletFileUpload upload = new ServletFileUpload();
if (!ServletFileUpload.isMultipartContent(request)
    throw new Exception("Invalid parameters");
FileItemIterator itr = upload.getItemIterator(request);
while(itr.hasNext()
{
    // This never gets run when the error occurs (Content-Length: 0).. 
}

フォームの送信に問題があると思いますか?誰が何が間違っているのか考えていますか? クロムでは常に機能します。

更新: HTMLフォームの重要な部分:

<form name='uploadparticipants' action='ParticipantUploader' method='post' encoding='multipart/form-data' enctype='multipart/form-data' target='upload_target' onsubmit='admin.uploadCourseParticipants()'>
// Some input fields inside a table, among them a file input //
<input type='submit' value='somevalue'>
</form>
4

1 に答える 1

0
  1. method="post"フォームの作成中に明示的に追加したことを確認してください。
  2. また、Javascript を使用して Internet Explorer (6 と 7 の両方) で動的にフォームを作成する場合、何らかの理由でエンコード属性も設定する必要があります。そのため、属性は enctype と呼ばれますが、enctype を設定しても何も起こりません。次のコードを追加してみてください。

    form.setAttribute('encoding', 'multipart/form-data');

于 2013-03-18T15:56:05.973 に答える