【问题标题】:JSP form sending data including files in servletJSP表单发送数据,包括servlet中的文件
【发布时间】:2015-06-23 13:28:17
【问题描述】:

我正在尝试将一些数据从 jsp 表单发送到 servlet。我的所有数据都是type="text",除了type="file“。我知道如果我想将数据发送到我的servlet,我必须使用request.getParameter(...)。(我的数据)为了不为空,我必须使用method="get"。但如果我想上传文件,我必须使用method="post"。如何使用一个表单将这两种类型传递给我的servlet?提前致谢!

.jsp

<form method="post" action="Servlet">
user:<input type="text" name="user"/>
img<input type="file" name="img"/>
</form>

Servlet.java

doPost(req,resp){
user = req.getParameter("user");//user == NULL
}

或

.jsp

<form method="get" action="Servlet">
user:<input type="text"/>
img<input type="file"/>
</form>

Servlet.java

doGet(req,resp){
//img not passed
}

【问题讨论】:

    标签: java jsp servlets post get


    【解决方案1】:

    表格:

    <form id="uploadForm" name="uploadForm" action="UploadServlet" method="post" enctype="multipart/form-data">
        user:<input type="text" name="user"/>
        img<input type="file" name="image"/>
    </form>
    

    您仍然可以通过发布请求获得两者:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        InputStream fileContent = null;
        String user = "";
        for (FileItem item : items) 
        {
            if (item.isFormField()) 
            {
                String fieldName = item.getFieldName();
                String fieldValue = item.getString();
                if(fieldName.equalsIgnoreCase("user"))
                {
                    user = fieldValue;
                }
            }
            else 
            {
                String fieldName = item.getFieldName();
                if(fieldName.equalsIgnoreCase("image"))
                {
                    fileContent = item.getInputStream();
                } 
            }
        }
    }
    

    这只是一个如何处理文件类型的post请求的示例。

    【讨论】:

    • 这就是我得到我的img的方式。我也会尝试其他数据,我会告诉你的。谢谢!
    • @ΝίκοςΔιαμαντόγιαννης 没问题!
    • @ΝίκοςΔιαμαντόγιαννης 欢迎您,很高兴我能提供帮助!
    猜你喜欢
    • 2013-08-13
    • 2012-07-31
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多