javaweb-servlet3.0 文件上传实现

2016-09-28  本文已影响302人  LH_0811

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);
        
      }

}


上一篇下一篇

猜你喜欢

热点阅读