美文网首页
javaweb-servlet3.0 文件上传实现

javaweb-servlet3.0 文件上传实现

作者: LH_0811 | 来源:发表于2016-09-28 10:48 被阅读302次

    servlet3.0 直接提供了上传的组件 使用十分便捷
    首先,在要进行上传的servlet文件写上注解

    @MultipartConfig

    表示这个servlet文件要进行文件上传
    前台form表单要修改 enctype="multipart/form-data"

    jsp代码:

    <form action="user?method=save" onsubmit="return checkForm()" method="post" enctype="multipart/form-data" class="form-horizontal" role="form">
                  <div class="form-group">
                    <label for="imagefile" class="col-sm-2 control-label">文件</label>
                    <div class="col-sm-10" style="padding-top: 5px;">
                      <input type="file" name = "imagefile" id="imagefile" placeholder="文件">
                    </div>
                  </div>
                  <div class="form-group">
                    <label for="nickName" class="col-sm-2 control-label">昵称</label>
                    <div class="col-sm-10">
                      <input type="text" class="form-control" name = "nickName" id="nickName" value="${currentUser.nickName }" placeholder="昵称">
                    </div>
                  </div>
                  <div class="form-group">
                    <label for="mood" class="col-sm-2 control-label">心情</label>
                    <div class="col-sm-10">
                      <textarea id="mood" name ="mood" class="form-control"  rows="10"> ${currentUser.mood } </textarea>
                    </div>
                  </div>
                  <div align="center">
                    <button type="submit" class="btn btn-primary">保存</button>
                    <button type="button" class="btn btn-primary" onclick="history.back()" >取消</button>
                    <font color=red id="error">${error }</font>
                  </div>
                </form>
    

    servlet代码:

    @WebServlet("/user")
    @MultipartConfig
    public class UserServlet extends HttpServlet{
    
        private static final long serialVersionUID = 1L;
    
        
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            String method = request.getParameter("method");
            if("save".equals(method)){
                this.userSave(request, response);
            }else{
                request.setAttribute("mainPage", "userJSP/userInfo.jsp");
                request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
            }
        }
        
        protected void userSave(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //获得上传的文件
            Part part = request.getPart("imagefile");
            System.out.println("submitName:"+part.getSubmittedFileName());
    //判断是否上传文件
            if(StringUtil.isNotEmpty(part.getSubmittedFileName())){
    //获得上传文件的头信息
                String contentDesc = part.getHeader("content-disposition");
                System.out.println("content-disposition"+ contentDesc);
    //上传文件名称包括后缀
                String submitName = part.getSubmittedFileName();
                System.out.println("submitName:"+submitName);
                System.out.println("此文件的大小:"+part.getSize()+"<br />");
                System.out.println("此文件类型:"+part.getContentType()+"<br />");
    //把文件写到这个路径下
                String filePath = PropertiesUtil.getValueForKey("imagePath")+imageName+submitName;
                part.write(filePath);
            
          }
    
    }
    
    
    

    相关文章

      网友评论

          本文标题:javaweb-servlet3.0 文件上传实现

          本文链接:https://www.haomeiwen.com/subject/gesaettx.html