阅读背景:

上传文件到阿里云OSS

来源:互联网 
/**
     * 上传文件到阿里云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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: