的multipart / form-data的如何获得参数隐藏(Multipart/form-dat

2019-10-19 03:52发布

我是在Web应用程序的工作。 我有我的ENCTYPE =“的multipart / form-data的”当我提出我的要求JSP,我无法获得servlet的请求参数。

都会返回空的的getParameter()调用。 现在的问题是如何解决这个问题?

当它不enctyped,该代码工作正常。 我知道,这已经被问了很多次,但我没有找到任何直接的答案

JSP

<form action="upload" method="post" enctype="multipart/form-data">
                <input type="file" name="uploadfile[]" id="uploadfile" size="50" multiple="true" />
                <br/><br/>
                <input type="hidden" name ="e_id" value= <%=userBean.getEid%> />
                <input type="hidden" name ="Uid" value= <%=userBean.getUid()%> />
                <input type="submit" name ="button1" value="Upload" />
            </form>

Servlet的

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{

    int e_id =0;
    String uid = null;

    HttpSession session1 = request.getSession(true);    
    if(ServletFileUpload.isMultipartContent(request)){//process only if its multipart content
        try 
        {
          List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
          for(FileItem item : multiparts)
          {
              if(!item.isFormField())
              {
                    String name = new File(item.getName()).getName();
                    item.write( new File(UPLOAD_DIRECTORY + File.separator + name));

                    e_id = Integer.parseInt(request.getParameter("e_id"));
                    uid = request.getParameter("Uid");
              }
              else {}
...

Answer 1:

您需要具有对注释你的servlet @MultipartConfig ,并让你使用的参数的值:

Part idPart = req.getPart("e_id");
try (Scanner scanner = new Scanner(idPart.getInputStream())) {
    String idValue = idPart.nextLine(); // read from the part
} 

我有一个项目在GitHub上对如何使用它的一个例子:

  • Servlet的
  • 上传页面


文章来源: Multipart/form-data how to get parameter hidden