我以为是我以为 2021-01-06 14:30 采纳率: 100%
浏览 256
已采纳

Java上传多文件成功,如何获取文件名字存到对应的数据库字段

我的问题是:MultipartFile[],上传两个文件成功(一个图片和一个视频),如何分别获取这两个文件的名字,存进数据库图片和视频两个字段?

 @RequestMapping(value = "/uploads", method = RequestMethod.POST,headers="content-type=multipart/form-data")
        public @ResponseBody
        JsonResult uploads(@RequestParam("videoTitle") String videoTitle,@RequestParam("filename") MultipartFile[] files) {

            // 数据库保存的路径
            String uploadPathDB = "";
            // 最终上传路径
            String finalVideoPath = "C:\\VideoUpload\\";
            File dest = new File(finalVideoPath);
            System.out.println("dest"+dest);

            if (!dest.exists())
                dest.mkdir();

            String fileName ="";
            String OriginalFilename ="";
            String videoOutputName ="";

            //判断file数组不能为空并且长度大于0
        if(files != null && files.length > 0){
                //循环获取file数组中得文件
          for(int i = 0;i < files.length;i++){
                 MultipartFile file = files[i];

            //获取文件上传名字
             OriginalFilename = file.getOriginalFilename();
            //生成文件名,带后缀名
            fileName = UUID.randomUUID().toString()+"."+OriginalFilename.substring(OriginalFilename.lastIndexOf(".")+1);
              //生成保存到数据的视频名,要取前边的值,保持一致
             videoOutputName = fileName ;

              // 设置数据库保存的路径
              uploadPathDB = String.format("/VideoUpload/"+ videoOutputName);
              finalVideoPath = FILE_BASE + uploadPathDB;

            //保存文件
              if (!file.isEmpty()) {
                  try {
                      file.transferTo(new File( dest+fileName));
                  } catch (IOException e) {
                      e.printStackTrace();
                      JsonResult.errorMsg("上传失败");
                  }
              }

          }
        }
            LOGGER.info("uploadPathDB = {}", uploadPathDB);
            LOGGER.info("coverPath = {}", uploadPathDB + ".jpg");
            LOGGER.info("finalVideoPath {}= ", finalVideoPath);

            // 保存视频信息到数据库
            Video video = new Video();
            video.setVideoTitle(videoTitle);
            video.setVideoPath(uploadPathDB);
            video.setCoverPath(uploadPathDB + ".jpg");
            video.setCreateTime(new Date());
            String videoId = videoService.addVideo(video);
            System.out.println(videoId);
            return JsonResult.ok("上传成功");
    }

感谢回复的老哥

  • 写回答

8条回答 默认 最新

  • qq_25376897 2021-01-06 15:41
    关注

    如果要求比较严格的,可以通过文件的魔数来判别文件类型

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?
  • ¥15 YOLOv8obb获取边框坐标时报错AttributeError: 'NoneType' object has no attribute 'xywhr'