Apache Commons 文件上传下载

maven依赖

 <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
    </dependency>

 

文件上传

1. 前端

<form action="upload" method="post" enctype="multipart/form-data">
    姓名:<input type="text" name="username"><br/>
    头像:<input type="file" name="header"><br/>
    <input type="submit">
</form>

2.servlet

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

        FileItemFactory fileItemFactory = new DiskFileItemFactory();

        ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);

        try {
            List<FileItem> fileItems = servletFileUpload.parseRequest(req);
            for (FileItem fileItem : fileItems) {
                if (fileItem.isFormField()){
                    System.out.println(fileItem.getFieldName());
                    System.out.println(fileItem.getString());
                }else {
                    System.out.println(fileItem.getName());
                    fileItem.write(new File("/Users/binge/Pictures/a.jpg"));
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

文件下载

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        InputStream resourceAsStream = getServletContext().getResourceAsStream("/file/tim.jpeg");
        String mimeType = getServletContext().getMimeType("/file/tim.jpeg");
        resp.setContentType(mimeType);
        resp.setHeader("content-Disposition","attachment;filename=a.jpg");
        ServletOutputStream outputStream = resp.getOutputStream();
        IOUtils.copy(resourceAsStream,outputStream);
    }

 

posted @ 2020-08-04 17:31  o0Bin  阅读(242)  评论(0)    收藏  举报