视频上传的接口开发

如何视频上传的接口的开发

原本我是按照文本一样的将数据添加,和修改。但是视频的话接口是要发生了一些的变化,和原本的接口有所不同,我通过金师附小的上传图片的案例,到其中找到关系。后来我通过网上的资源,发现了若依有自带视频或者图片上传的工具类。

  • Controller

    • /**
          * 上传修改高血压视频

          * @param file
          * @return
          * @throws IOException
          * @throws InvalidExtensionException
          */
         @PostMapping("/hypertensionPicture")
         public AjaxResult editVideo(@PathVariable MultipartFile file) throws IOException, InvalidExtensionException {
             boolean b = iTbUpdateService.editVideo(file);
             if (b){
                 return AjaxResult.success("上传成功");

            }else {
                 return AjaxResult.error("上传失败!");
            }
        }
  • TbUpdateServiceImpl

 /**
    * 修改上传视频

    * @param file
    * @return
    * @throws IOException
    * @throws InvalidExtensionException
    */
   @Override
   public boolean editVideo( MultipartFile file) throws IOException, InvalidExtensionException {
       boolean update = false;
       String hypertensionPicture = FileUploadUtils.upload(RuoYiConfig.getUpdatePath(), file, MimeTypeUtils.MEDIA_EXTENSION);
       LambdaQueryWrapper<TbUpdate> queryWrapper = new LambdaQueryWrapper<>();
       queryWrapper.eq(TbUpdate::getUpdateId,1);

       List<TbUpdate> list = iTbUpdateService.list();
       if (list.size() == 1){
           TbUpdate tbUpdate =new TbUpdate();
           BeanUtils.copyProperties(list,tbUpdate);
           tbUpdate.setHypertensionPicture(hypertensionPicture);
           update = iTbUpdateService.update(tbUpdate, queryWrapper);
      }
       return update;
  }

上面的示例的代码就就上传视频的接口,如果想上传图片的话也是可以的,就在这个上传的视频的基础上稍微进行修改,就可以成功。MimeTypeUtils.MEDIA_EXTENSION这个是上传视频的。

  • 后台视频上传方法controller中代码展示如上:

    • 提示1:上传图片和视频都可以用RuoYi中此方法,即FileUploadUtils.upload(Global.getFengMian(),file),唯一区别不同的是图片上传和视频上传的格式不一样,MimeTypeUtils.MEDIA_EXTENSION在RuoYi代表视频格式,MimeTypeUtils.IMAGE_EXTENSION在RuoYi代表图片格式,大家可以点进方法中看看便知。

      提示2:在RuoYi后台application.yml文件中,“文件上传”模块可设置单个文件和总上传文件大小,自己定义。

     

     

问题及解决

我在写上传视频前端出现bug

分析:因为上传视频我通过大量的网上案例,但是收获不是很大,将一些组件复制上的时候出现问题

 

 

我在做视频上传的时候出现bug

分析:我模仿者金师附小的图片上传的案例,写接口它是用xml中写sql语句,但是一直报错表示映射不上。

解决:后来我就改变了我的思路就是不用在xml写sql语句,通过mybatis plus来写sql语句,update的方法就成功了。

 

学习重点及理解

上传脑中风的视频接口开发

  • Controller

    • /**
      * 上传修改脑中风视频

      * @param file
      * @return
      * @throws IOException
      * @throws InvalidExtensionException
      */
      @PostMapping("/apoplexiaPicture")
      public AjaxResult editApoplexia(@PathVariable MultipartFile file) throws IOException, InvalidExtensionException {
         boolean b = iTbUpdateService.editApoplexia(file);
         if (b){
             return AjaxResult.success("上传成功");

        }else {
             return AjaxResult.error("上传失败!");
        }
      }
  • ITbUpdateService

    • **
      * 修改上传脑中风视频

      * @param file
      * @return
      * @throws IOException
      * @throws InvalidExtensionException
      */
      boolean editApoplexia( MultipartFile file) throws IOException, InvalidExtensionException;
  • TbUpdateServiceImpl

    • /**
      * 修改上传脑中风视频
      * @param file
      * @return
      * @throws IOException
      * @throws InvalidExtensionException
      */
      @Override
      public boolean editApoplexia(MultipartFile file) throws IOException, InvalidExtensionException {
         boolean update = false;
         String apoplexiaPicture = FileUploadUtils.upload(RuoYiConfig.getUpdatePath(), file, MimeTypeUtils.MEDIA_EXTENSION);
         LambdaQueryWrapper<TbUpdate> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(TbUpdate::getUpdateId,1);

         List<TbUpdate> list = iTbUpdateService.list();
         if (list.size() == 1){
             TbUpdate tbUpdate =new TbUpdate();
             BeanUtils.copyProperties(list,tbUpdate);
             tbUpdate.setApoplexiaPicture(apoplexiaPicture);
             update = iTbUpdateService.update(tbUpdate, queryWrapper);
        }
         return update;
      }

这个接口的开发方式,我直接举一反三就将高血压的视频上传,还要脑中风,脑卒中的也是按照这样的开发方式。

 

扩展学习

若依的上传的工具类

String apoplexiaPicture = FileUploadUtils.upload(RuoYiConfig.getUpdatePath(), file, MimeTypeUtils.MEDIA_EXTENSION);
  • FileUploadUtils.upload()

    • 其中要填写三个参数:上传资源的路径,文件,上传文件的格式(视频或者图片)

  • 在RuoYiConfig.getUpdatePath()这个方法中RuoYiConfig中自带了很多的上传的方法路径,也可以自己也模仿着写一条,供自己调用

 

总结

今天的研究视频上传的时候,花费了很多的时间。通过网上的大量案例,找到也一些有用的想法,然后根据金师附小的上传图片的案例,摸索出了视频上传的开发接口的方法。

posted @ 2023-04-23 20:23  葬爱_坤疤  阅读(116)  评论(0)    收藏  举报