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

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条回答 默认 最新

相关推荐 更多相似问题