分片上传文件的实现

时间:2025-02-16 09:26:05
  • /**gn
  • * @param file 文件
  • * @param chunks 分片总数
  • * @param chunk 当前分片
  • * @param name 文件名
  • * @param md5 文件md5值
  • * @return
  • * @Description: 手动上传
  • * @date 2022/8/8 11:42
  • * @author Qifan
  • */
  • public String uploadFile(MultipartFile file, String chunks, String chunk, String name, String md5) {
  • //数据库获取实体
  • List<LocalFilePathEntity> localPathInfoList = ();
  • //准备返回结果
  • Map<String, String> resultMap;
  • String returnJsonStr;
  • if (!(localPathInfoList) && !((0).getZipPath())) {
  • //准备对象
  • LocalFilePathEntity filePathEntity = (0);
  • String packFilePath = ();
  • //文件名
  • String str = (0, ("."));
  • //创建目录
  • (packFilePath);
  • //对分片进行判断,存在走分片
  • if (chunks != null && chunk != null) {
  • //创建分片路径--->.../文件名/md5/
  • File dir = new File(packFilePath + str + "/" + md5);
  • if (!()) {
  • ();
  • }
  • try {
  • byte[] bytes = ();
  • Path path = (packFilePath + str + "/" + md5 + "/" + chunk);
  • //写入分片下路径
  • (path, bytes, new OpenOption[0]);
  • //合并分片另外写了接口,等多个分片上传完成之后,再进行合并接口,并保存入库
  • ("文件分片上传成功!");
  • resultMap = this.getReturnMap(name, "文件上传成功");
  • returnJsonStr = (resultMap);
  • } catch (IOException var15) {
  • ("文件分片失败 失败原因" + ());
  • resultMap = this.getReturnMap(name, "分片失败,失败原因:" + ());
  • returnJsonStr = (resultMap);
  • }
  • } else {//分片为null,不存在,一般文件
  • try {
  • byte[] bytes = ();
  • Path path = (packFilePath + name);
  • ("----------------");
  • (path, bytes, new OpenOption[0]);
  • //一.保存上传记录表
  • //UploadFileHisEntity uploadHis = (0, name);
  • //if (().equals(())) {
  • // resultMap = (name, ());
  • // returnJsonStr = (resultMap);
  • // return returnJsonStr;
  • //}
  • //二.解析文件并入库
  • //(name, uploadHis, filePathEntity);
  • ("文件上传成功!");
  • resultMap = this.getReturnMap(name, "文件上传成功");
  • returnJsonStr = (resultMap);
  • } catch (IOException var14) {
  • ("文件上传失败 失败原因" + ());
  • resultMap = this.getReturnMap(name, "上传失败,失败原因:" + ());
  • returnJsonStr = (resultMap);
  • }
  • }
  • return returnJsonStr;
  • } else {//没有配置路径,不允许上传
  • resultMap = this.getReturnMap(name, "本机配置没有配置上传压缩包文件路径");
  • returnJsonStr = (resultMap);
  • return returnJsonStr;
  • }
  • }