文件上传案例

文件上传案例

  • 朋友圈 ,邮箱上传附件.百度云盘 360云盘. 
  • 代码实现过程: 
  • 客户端要求: 
    • 要求form表单必须有一个文件上传项 
    • 请求的方式必须为post 因为get提交数据有大小的限制 
    • 必须加上一个enctype = multipart/form-data 否则请求体里面没有内容
  • 服务器逻辑:
@MultipartConfig
@WebServlet("/uploads")
public class Upload extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        Part part = req.getPart("file");
        String realPath = getServletContext().getRealPath("fileUpload");
        System.out.println(realPath);
        String header = part.getHeader("Content-Disposition");
        String[] array = header.split(";");
        String filename = array[array.length - 1];
        String[] arr = filename.split("=");
        String filerealname = arr[arr.length - 1];
        String file = filerealname.substring(1, filerealname.length() - 1);
        System.out.println(file);
        System.out.println(realPath + "\\" + file);
        part.write(realPath + "\\" + file);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}