• 上传下载 demo


    import org.apache.commons.io.IOUtils;
    import org.apache.commons.lang.StringUtils;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.MultipartFile;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    @RestController
    @RequestMapping("/file")
    public class FileController {
    /**
    * 参数名file与ControllerTest.whenUploadSuccess里new MockMultipartFile的第一个参数名要相同
    */
    @PostMapping("/upload")
    public FileInfo update(MultipartFile file) throws Exception {
    System.out.println(file.getName());
    System.out.println(file.getOriginalFilename());
    System.out.println(file.getContentType());
    System.out.println(file.getSize());
    String path = "xxx";
    String extension = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
    File localFile = new File(path, System.currentTimeMillis() + "." + extension);
    file.transferTo(localFile);
    return new FileInfo(localFile.getAbsolutePath());
    }
    @GetMapping("/download")
    public void download(HttpServletRequest request, HttpServletResponse response) throws Exception {
    //从request中获取下载文件路径
    String filePath = request.getParameter("xxxx");
    //try ()里定义的InputStream和OutputStream会被自动释放,不需要在finally里手动释放,JDK 1.7后出现的此语法
    try (InputStream inputStream = new FileInputStream(filePath);
    OutputStream outputStream = response.getOutputStream()) {
    response.setContentType("application/x-download");
    //attachment;filename=指定默认下载文件名
    response.addHeader("Content-Disposition", "attachment;filename=download.txt");
    IOUtils.copy(inputStream, outputStream);
    outputStream.flush();
    }
    }
    }
  • 相关阅读:
    selenium判断元素是否为空
    charles 设置弱网测试(转)
    python爬虫初步认知
    Ubuntu运行*.sh文件出现 bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory问题解决方案
    Unity3D【安装...........】
    世界上最早的区块链——中国麻将【........】
    Cypher 概述与基本语法
    Win10系统还原与恢复出厂教程【启动系统还原功能】
    增加首页音乐播放器APlayer
    Fabric 持久化
  • 原文地址:https://www.cnblogs.com/xmanblue/p/8110517.html
Copyright © 2020-2023  润新知