首页 > 其他分享 >文件上传/下载后台代码

文件上传/下载后台代码

时间:2024-09-13 17:51:48浏览次数:8  
标签:filePath os 代码 flag 后台 import 上传 FileUtil

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.example.common.Result;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;

/**

  • 文件上传接口
    */
    @RestController
    @RequestMapping("/files")
    public class FileController {

    //文件上传路径
    private static final String filePath = System.getProperty("user.dir") + "/file/";

    /**

    • 文件上传
      */
      @PostMapping("/upload")
      public Result upload(MultipartFile file){
      synchronized (FileController.class){
      String flag =System.currentTimeMillis()+"";
      String fileName = file.getOriginalFilename();
      try{
      if(!FileUtil.isDirectory(filePath)){
      FileUtil.mkdir(filePath);
      }
      //文件存储格式:时间戳-文件名
      FileUtil.writeBytes(file.getBytes(),filePath + flag + "-" + fileName);
      System.out.println(fileName +"--上传成功");
      Thread.sleep(1L);
      } catch (IOException | InterruptedException e) {
      System.out.println(fileName + "--文件上传失败");
      }
      return Result.success(flag);
      }
      }

    @GetMapping("/{flag}")
    public void avatarPath(@PathVariable String flag, HttpServletResponse response){
    if (!FileUtil.isDirectory(filePath)){
    FileUtil.mkdir(filePath);
    }
    OutputStream os;
    List fileNames = FileUtil.listFileNames(filePath);
    String avatar = fileNames.stream().filter(name -> name.contains(flag)).findAny().orElse("");
    try {
    if (StrUtil.isNotEmpty(avatar)){
    response.addHeader("Content-Disposition","attachment;filename"+ URLEncoder.encode(avatar,"UTF-8"));
    response.setContentType("application/octet-stream");
    byte[] bytes = FileUtil.readBytes(filePath + avatar);
    os = response.getOutputStream();
    os.write(bytes);
    os.flush();
    os.close();
    }
    } catch (Exception e) {
    System.out.println("文件下载失败");
    }
    }
    }

标签:filePath,os,代码,flag,后台,import,上传,FileUtil
From: https://www.cnblogs.com/zhishizongjie/p/18412651

相关文章

  • 九种加密源代码的实用方法,守护你的技术宝藏!
    源代码不仅是项目的核心,更是企业的宝贵资产。如何有效保护源代码安全,防止泄露和篡改,是每位开发者和企业必须面对的重要课题。下面带来九种加密源代码的实用方法,助你构建多层次的防护体系!1.文件级加密:这是最基础也最直接的方法。利用安企神软件,对单个或一组源代码文件进行......
  • Python装饰器:一种优雅的代码增强技术
      在Python编程中,装饰器(Decorator)是一种强大且优雅的工具,它允许程序员在不修改函数或类定义的情况下,动态地添加新的功能或修改其行为。装饰器在函数式编程、Web开发、测试框架等多个领域都有广泛的应用。本文将深入探讨Python装饰器的概念、使用场景、语法特性以及如何自定......
  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使⽤......
  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使⽤......
  • ARM-8 代码还原动态调试之 pstree 多个条件跳转
    402600: b9405360 ldr w0,[x27,#80]//w0=show_parents,调试确认为show_parents402604: f9400774 ldr x20,[x27,#8]//x20=list402608: 7100001f cmp w0,#0x0//show_parents?=040260c: b9401fe0 ldr w0,[sp,#28]//......
  • 网站后台登录提示:”登录失败:数据库目录写入权限不足!“
    当PbootCMS后台登录时提示“登录失败:数据库目录写入权限不足!”时,这通常意味着用于存储数据库文件的目录(通常是data目录)的权限设置不正确,导致PHP无法写入必要的文件。以下是解决此问题的步骤:1.确认目录位置确认数据库目录的位置,通常是网站根目录下的data目录。2.更改目录权限......
  • PbootCMS上传图片被压缩怎么解决
    当使用PbootCMS上传图片时,如果图片被压缩导致质量下降或变得模糊,可以通过调整PbootCMS的相关配置来解决这一问题。以下是一些具体的步骤:1.找到配置文件打开PbootCMS安装目录下的config文件夹。找到config.php文件。同时,也需要检查core文件夹下的convention.php文件。2.调......
  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使......
  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使......
  • 后台图片上传提示:”上传失败:存储目录创建失败!
    当PbootCMS后台上传图片时提示“上传失败:存储目录创建失败!”时,这通常意味着服务器没有足够的权限来创建必要的目录以存储上传的图片。以下是一些可能的解决方案:1.修改文件夹权限确定文件夹路径:确认上传图片的目标文件夹路径,通常是网站根目录下的static文件夹。更改权限:通过FT......