文件的上传和下载

导读:本篇文章讲解 文件的上传和下载,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.文件上传,废话不多说直接贴代码

  /**
     * 文件的上传
     *
     * @param file
     * @return
     */
    @PostMapping("/upload")
    public R<String> upload(MultipartFile file) {
        log.info("文件名:" + file.toString());
        String fileName = null;
        try {
//原始文件名
            String originalFilename = file.getOriginalFilename();
//获取文件的后缀名
            String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
            //生成uuid进行拼接生成新的文件名
            fileName = UUID.randomUUID().toString() + substring;
//        创建一个文件目录
            File file1 = new File(path);
            if (!file1.exists()) {
                file1.mkdirs();
            }
            file.transferTo(new File(path + fileName));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return R.success(fileName);
    }

上面代码中的path变量是你指定要将文件保存到本地的一个路径,可以写在yml文件中,便于以后的维护

文件的上传和下载

 路径的指定获取在代码中定义全局变量进行获取:

文件的上传和下载

 2.文件下载,其实就是通过输入流获取之前上传的文件,然后通过输出流在浏览器中进行展示出来,废话不多说直接贴代码。

  @GetMapping("/download")
    public void download(String name, HttpServletResponse response) {

        try {
            //输入流,通过输入流读取文件内容
            FileInputStream fileInputStream = new FileInputStream(new File(path + name));

            //输出流,通过输出流将文件写回浏览器,在浏览器展示图片
            ServletOutputStream outputStream = response.getOutputStream();

            response.setContentType("image/jpeg");
            response.addHeader("Access-Contro1-A11ow-0rigin", "*");
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = fileInputStream.read(bytes)) != -1) {
                outputStream.write(bytes, 0, len);
                outputStream.flush();
            }
            fileInputStream.close();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

以上就是文件的上传和下载的代码实现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/105087.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!