Java 多部分表单数据工作不正常
在我的JSP页面中,我有三个带有enctype=“multipart/formdata”的单独表单。在每一张表格上,我都上传了一个文件。 第一个表单是正确上传文件,类型为application/pdf。但是,其余两个表单以应用程序/八位字节流的形式上载文件。 代码如下所示Java 多部分表单数据工作不正常,java,jsp,servlets,file-upload,multipart,Java,Jsp,Servlets,File Upload,Multipart,在我的JSP页面中,我有三个带有enctype=“multipart/formdata”的单独表单。在每一张表格上,我都上传了一个文件。 第一个表单是正确上传文件,类型为application/pdf。但是,其余两个表单以应用程序/八位字节流的形式上载文件。 代码如下所示 <div id="form1" class="category-form" style="display:none;"> <form id="form" action="Upload
<div id="form1" class="category-form" style="display:none;">
<form id="form" action="UploadServlet?action=form1" method="post" class="pure-form pure-form-aligned" enctype="multipart/form-data">
<div class="bottom fit" vertical layout>
<div style="margin-bottom: 1em">
<input id="file" name="file" type="file" data-placeholder="Attach file" class="filestyle" data-buttonName="btn-info">
</div>
</div>
</form>
</div>
<div id="form2" class="category-form" style="display:none;">
<form id="form" action="UploadServlet?action=form2" method="post" class="pure-form pure-form-aligned" enctype="multipart/form-data">
<div class="bottom fit" vertical layout>
<div style="margin-bottom: 1em">
<input id="file" name="file" type="file" data-placeholder="Attach file" class="filestyle" data-buttonName="btn-info">
</div>
</div>
</form>
</div>
<div id="form3" class="category-form" style="display:none;">
<form id="form" action="UploadServlet?action=form3" method="post" class="pure-form pure-form-aligned" enctype="multipart/form-data">
<div class="bottom fit" vertical layout>
<div style="margin-bottom: 1em">
<input id="file" name="file" type="file" data-placeholder="Attach file" class="filestyle" data-buttonName="btn-info">
</div>
</div>
</form>
</div>
可能是因为有3个表单id相同:
formid=“form”
。我不确定,但我几乎可以肯定它不起作用properly@Hugo感谢您的回复,我更改了表单id,但它仍然显示文件类型为application/octet stream,大小为0。我猜内容是通过Javascript/jquery发送的-如果是,请将该代码添加到您的问题中input id=“file”
?也有三个。通常有很多相同id的元素使事情不起作用,顺便问一下,你为什么这样做?
@MultipartConfig(maxFileSize = 16177215)
public class UploadServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
doPost(req, res);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String action = request.getParameter("action");
if(action.equals("form1"))
{
Part filePart = request.getPart("file");
if (filePart != null)
{
System.out.println("File Parts Not Null");
System.out.println(filePart.getName());
System.out.println(filePart.getSize());
System.out.println(filePart.getContentType());
System.out.println("File name is : "+filename);
inputStream = filePart.getInputStream();
}
}
if(action.equals("form2"))
{
Part filePart = request.getPart("file");
if (filePart != null)
{
System.out.println("File Parts Not Null");
System.out.println(filePart.getName());
System.out.println(filePart.getSize());
System.out.println(filePart.getContentType());
System.out.println("File name is : "+filename);
inputStream = filePart.getInputStream();
}
}