首页 > 其他分享 >视频上传的接口开发

视频上传的接口开发

时间:2023-04-23 20:36:45浏览次数:34  
标签:视频 return 接口 IOException file 上传 throws

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

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

  • 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中自带了很多的上传的方法路径,也可以自己也模仿着写一条,供自己调用

 

总结

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

标签:视频,return,接口,IOException,file,上传,throws
From: https://www.cnblogs.com/ikunba/p/17347637.html

相关文章

  • 填报接口的开发
    接口的开发:每周填报患者每周都将自己的情况上传上去,根据上传的数据要对数据进行预警,那些指数出现问题。是一周来进行判断。接口的前期想法:其中关联着很多的表,运健写了有一些接口是决定我这边的接口要如何的去写,比如是他写的运动下拉表列,没有将指定的运动id传进去,所以我要根据对......
  • 本地Typora文件及图片上传博客云
    本地Typora文件及图片上传博客云1.Typora+cnblog图片自动上传一段废话:使用博客园一定会遇到一个操蛋的问题,就是本地Typora编辑的markdown文本,直接粘贴到博客园发布,图片无法显示。这是因为图片是本地路径,不是网络路径。问题能通过将图片上传到三方图床然后在markdown文件中......
  • java架构师视频教程
    我真的希望大家能坚持学完我的这套java架构师视频教程,我知道这的确要花费很多的时间和精力,还有大量的练习,我在开始学习的时候也和大家一样的厌倦学习,中途想要放弃。但想想看,既然知道我的这套java架构师的确是非常有效果的,并能改变我们的技术能力,让我们在工作中一生受益,那为什么不......
  • mac:使用VLC播放纯视频YUV文件和纯音频pcm文件(命令行)
    一、使用vlc播放yuv有时候,我们需要播放一些纯视频文件,判断YUV数据是否可用。举个例子,我们使用命令行,播放/Users/domain/Desktop目录下的:test\_yuv420p\_320x180.yuv文件,命令如下:$/Applications/VLC.app/Contents/MacOS/VLC--demuxrawvideo--rawvid-fps15--rawvid-width320......
  • 如何把视频合并在一起?视频合并软件合集!​
    如何把视频合并在一起?众所周知,将多个视频素材拼接在一起,可以创造出更具故事性和连贯性的视频作品,提高观看体验和吸引力,而且合并多个视频素材,可以形成更完整、更精细的宣传内容,从而为产品或品牌带来更好的推广效果,那么很多小伙伴不知道该使用什么软件进行操作,感兴趣的小伙伴一起来看......
  • 视频封面图片怎么设置?视频封面设置方法分享!​
    视频封面图片怎么设置?视频封面是指视频发布时显示的静态图片,通常被用作视频的缩略图和展示图,而且一个美观、吸引人的视频封面能够引起用户的兴趣,提高视频的点击率和观看量,我们在社交媒体等平台上分享视频时,视频封面也会自动显示,方便用户快速识别和浏览,那么很多小伙伴不知道该用什么......
  • 怎么把两个视频合成一个视频?视频合并方法分享!​
    怎么把两个视频合成一个视频?视频合并是指将两个或多个视频素材进行拼接和剪辑,以生成一个完整的视频作品,这种技术在电影、电视节目、广告片等领域被广泛应用,可以把不同的视频素材融合在一起,创造出更加生动、有趣的视觉效果,随着电子设备的普及和网络传输速度的提高,视频合并成为数字内......
  • js循环调用接口,获取每一次接口的值
    vue代码。data数据:list:[{listName:"待办",listNum:0},{listName:"退回",listNum:0},{listName:"已办",listNum:0},{listName:"全部",listNum:0}],methods里面的方法:asyncgetAllData(){this.list......
  • B/S实现文件上传下载功能实例解析
    ​ 一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传,需要自己实现。 二、Range  用于请求头......
  • 网页实现文件上传下载功能实例解析
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......