第一步:前端内容
<!-- 上传视频 -->
<cover-image src='../resource/images/camera.png' style='width:50rpx;height:50rpx;' bindtap='upload'></cover-image>
第二步:后端内容
@PostMapping(value="/upload",headers="content-type=multipart/form-data")
public LpyJSONResult upload(String userId,
String bgmId,String videoSeconds,
int videoWidth,int videoHeight,
String desc,
@ApiParam(value="短视频",required=true)
MultipartFile file) throws Exception {
if(StringUtils.isBlank(userId)) {
return LpyJSONResult.errorMsg("用户id不能为空");
}
//定义我们的命名空间,所有的文件都可以上传在这之下
String fileSpace="D:/java_all/workspace-wxxcs/video-space";
//保存到数据库中的相对路径(在命名空间每个不同用户存的文件)
String uploadPathDB="/"+userId+"/video";
String coverPathDB="/"+userId+"/video";
FileOutputStream fileOutputStream=null;
InputStream inputStream=null;
//文件上传的最终保存路径
String finalVideoPath="";
try {
if(file!=null) {
//获取文件名
String name=file.getOriginalFilename();
//分隔路径
String[] one=name.split("\\/");
String fileName=one[one.length-1];
//获取前缀
String fileNamePrefix=fileName.split("\\.")[0];
if(StringUtils.isNotBlank(fileName)) {
//文件上传的最终保存路径
finalVideoPath=fileSpace+uploadPathDB+"/"+fileNamePrefix+".mp4";
//设置数据库保存的路径
uploadPathDB += ("/"+fileNamePrefix+".mp4");
coverPathDB=coverPathDB+"/"+fileNamePrefix+".jpg";
File outFile = new File(finalVideoPath);
if(outFile.getParentFile()!=null ||!outFile.getParentFile().isDirectory()) {
//创建父文件夹
outFile.getParentFile().mkdirs();
}
//文件输出
fileOutputStream = new FileOutputStream(outFile);
inputStream = file.getInputStream();
IOUtils.copy(inputStream, fileOutputStream);
}
}else {
return LpyJSONResult.errorMsg("上传出错");
}
} catch (Exception e) {
e.printStackTrace();
return LpyJSONResult.errorMsg("上传出错");
}finally {
if(fileOutputStream!=null) {
fileOutputStream.flush();
fileOutputStream.close();
}
}