我以为是我以为 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 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘