/**
* 上传文件到阿里云OSS
*
* @param file
* @param token
* @return
*/
@PostMapping("/uploadFile")
@LogRecordAnnotation(moduleCode = 100001, moduleName = "上传", methodCode = 10000106, methodName = "up", description = "上传接口")
public String uploadFile(@RequestParam("file") MultipartFile file, @RequestHeader String token) {
try {
//获取用户的信息
LoginUserCache loginUserCache = null;
System.out.println("token"+token);
Object tokenResult = redisService.get(token);
System.out.println("tokenResult"+tokenResult.toString());
if (tokenResult != null) {
loginUserCache = JSON.parseObject(tokenResult.toString(), LoginUserCache.class);
if (loginUserCache == null) {
return OnlyhieduResponse.noAuthError("没有权限", null).toJson();
}
} else {
return OnlyhieduResponse.noAuthError("没有权限", null).toJson();
}
boolean flag = false;
if (file == null) {
return OnlyhieduResponse.error("File不能为空", null).toJson();
}
if (file.getSize() >= 3 * 1024 * 1024) {
return OnlyhieduResponse.error("文件不能大于3GB", null).toJson();
}
if (!file.getOriginalFilename().endsWith(".mp4")
&&!file.getOriginalFilename().endsWith(".avi")
&&!file.getOriginalFilename().endsWith(".mov")
&&!file.getOriginalFilename().endsWith(".flv")
&&!file.getOriginalFilename().endsWith(".mkv")
&&!file.getOriginalFilename().endsWith(".wmv")
&&!file.getOriginalFilename().endsWith(".rmvb")
&&!file.getOriginalFilename().endsWith(".3gp")
&&!file.getOriginalFilename().endsWith(".mpeg")
) {
return OnlyhieduResponse.error("上传图片格式必须为mp4/avi/mov/flv/mkv/wmv/rmvb/3gp/mpeg格式", null).toJson();
}
//获取文件的原始名字
String originalfileName = file.getOriginalFilename();
loginUserCache.setFileOriginalName(originalfileName);
String fileAddress = DateUtil.parseDateToStr(new Date());
//重新命名文件
String suffix = originalfileName.substring(originalfileName.lastIndexOf(".") + 1);
String fileName = new Date().getTime() + "-video." + suffix;
//smallProgramSeriesCourse1.setCourseVideo(fileName);
//创建oss key 生成规则:文件目录名+文件名称 如:courseVO/123.jpg
String key = SMALL_PROGRAM_SERIES_COURSE_FILE_PATH + "/" + fileAddress + "/" + fileName;
System.out.println("key==" + key);
//创建ossclient客户端
OSSClient client = OssUtils.generateOssClient();
//上传文件于oss服务器
OssUtils.uploadFileInputStream(client, file.getInputStream(), file.getOriginalFilename(), file.getSize(), key);
//生成文件可访问的url
String url = OssUtils.generateFileUrl(client, key);
//关闭ossclient客户端
client.shutdown();
loginUserCache.setCourseVideoUrl(key);//永久的OSS的key写入到数据库
if (url != null && url != "") {
return OnlyhieduResponse.success("上传成功", loginUserCache).toJson();
} else {
return OnlyhieduResponse.exceprion("文件上传失败", null).toJson();
}
} catch (Exception e) {
e.printStackTrace();
return OnlyhieduResponse.exceprion("文件上传失败", null).toJson();
}
}
/**
* 上传文件到阿里云OSS
*
* @param