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