1

在 IE9 中,当我向 java servlet 提交带有文件的表单(enc-type: multipart/form-data)时,出现问题。我无法找到错误并找到解决方案。不工作时,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).. 
}

我认为表单提交有问题?有谁知道可能出了什么问题?在 chrome 中它总是有效。

更新: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)中动态创建表单时,出于某种原因,您还需要设置 encoding 属性。因此,虽然该属性称为 enctype,但设置 enctype 没有任何作用。请尝试添加以下代码:

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

于 2013-03-18T15:56:05.973 回答