网盘

大文件分片上传

前端对文件进行分割,给出总片数

后端把每个分片下载到一个临时文件夹下,按分片索引命名

当分片数达到总片数,进行分片合并

文件信息插入数据库,存文件的存放地址(本地或者OOS)

异步——生成完整文件,文件类型、存放到用户指定的目录下,删除临时文件

生成完整文件——就是把临时文件夹下的分片文件按照分片顺序,合并写入目的文件(读分片,写)

对于视频、图片类型的文件,需要生成一个缩率图作为封面————ffmpeg工具

秒传功能:就是先把文件信息入库,返回前端上传成功。再异步去写入服务器

RandomAccessFile

文件下载

  1. 一个方法,前端调用,后端返回一个下载码

  2. 前端拿着这个下载码,再去调用后端的下载方法

    1. 配置相应头等相关信息

      1. response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
        
      2. response.setContentType("application/x-msdownload; charset=UTF-8");
        
    2. 用HttpServletResponse的输出流写给页面

为什么下载就不需要分片处理,而上传要呢?

文件存储

用户删除文件操作

  1. 和数据库的关联(逻辑删除还是物理删除——回收站功能?)
  2. 服务器文件删除的时机?
posted @ 2024-05-16 15:30  一个偷偷自学的小笨蛋  阅读(35)  评论(0)    收藏  举报