若依框架集成七牛云上传图片视频

后端请求

 /**
     * 七牛云上传请求(单个)
     */
    @PostMapping("/uploadQiNiu")
    public AjaxResult uploadQiNiuFile(MultipartFile file) throws Exception
    {
        try
        {
            String fileName = String.valueOf(FileUploadQiNiuUtils.QiniuCloudUploadImage(file));
            String url = QiniuCloud_domainName + fileName;
            System.out.println(url);
            System.out.println(FileUploadQiNiuUtils.QiniuCloudUploadImage(file));
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            ajax.put("fileName", url);
//            ajax.put("newFileName", FileUtils.getName(fileName));
//            ajax.put("originalFilename", file.getOriginalFilename());
            return ajax;
        }
        catch (Exception e)
        {
            return AjaxResult.error(e.getMessage());
        }
    }

后端七牛云上传工具类

package com.ruoyi.common.utils.file;

import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;

public class FileUploadQiNiuUtils {
    private static final String QiniuCloud_accessKey = "自己的ak";

    private static final String QiniuCloud_secretKey = "自己的sk";

    private static final String QiniuCloud_bucket = "七牛云自己创建的文件目录";

    public static final String QiniuCloud_domainName = "自己的域名";

    private static final String customSuffix = ".png";//定义图片保存后的后缀
    private static final String customSuffix1 = ".mp4";//定义图片保存后的后缀

    /**
     * 上传图片到七牛云
     * @param file 图片
     * @return 返回图片存储后的新图片名
     * @throws Exception
     */
    public static String QiniuCloudUploadImage(MultipartFile file) throws Exception{
        if(file.isEmpty()) {
            return "文件为空";
        }else if(file.getSize() > 1024*1024*500){
            return "文件大于50M";
        }
        //获取图片后缀
        String originalFilename = file.getOriginalFilename();
        System.out.println("-------------一眼顶针");
        System.out.println(originalFilename);
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        System.out.println("-------------一眼顶针2");
        System.out.println(suffix);
        //允许上传的图片格式集合
        String[] suffixes = new String[]{".bmp", ".jpeg", ".jpg", ".png",".mp4"};
        boolean bool = false;
        //判断格式是否在suffixes中
        for(String string : suffixes){
            if (string.equals(suffix)){
                bool = true;
                break;
            }
        }
        if(!bool){
            return "格式错误";
        }
        //构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.autoRegion());
        cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;//指定分片上传版本
        UploadManager uploadManager = new UploadManager(cfg);
        //生成上传凭证,然后准备上传
        String accessKey = QiniuCloud_accessKey;
        String secretKey = QiniuCloud_secretKey;
        String bucket = QiniuCloud_bucket;
        byte[] bytes = file.getBytes();
        String imageName = DigestUtils.md5DigestAsHex(bytes);//将图片md5的值作为图片名,避免重复图片浪费空间
        String key = new String();
        if (suffix.equals(".mp4")){
            //默认不指定key的情况下,以文件内容的hash值作为文件名
            key = imageName + customSuffix1;//图片保存到七牛云后的文件名
        } else {
           key = imageName + customSuffix;//图片保存到七牛云后的文件名
        }

        try {
            byte[] uploadBytes = file.getBytes();
            ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
            Auth auth = Auth.create(accessKey, secretKey);
            String upToken = auth.uploadToken(bucket);

            try {
                uploadManager.put(byteInputStream,key,upToken,null, null);
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println("七牛云ERROR:" + r.toString());
                try {
                    System.err.println("七牛云ERROR:" + r.bodyString());
                } catch (QiniuException ex2) {
                    //ignore
                }
            }
        } catch (UnsupportedEncodingException ex) {
            //ignore
        }

        return key;
    }
    /**
     * 获取七牛云图片链接
     * @param fileName 图片名
     * @return 返回图片链接
     */
    public static String QiniuCloudDownloadImage(String fileName){
        String fileUrl = String.format("%s/%s", QiniuCloud_domainName, fileName);
        return fileUrl;
    }

}

前端页面

这个页面是若依封装的上传组件

return {
      number: 0,
      uploadList: [],
      dialogImageUrl: "",
      dialogVisible: false,
      hideUpload: false,
      // baseUrl: process.env.VUE_APP_BASE_API,
      uploadImgUrl: "/common/uploadQiNiu", // 上传的图片服务器地址
      // uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadQiNiu", // 上传的图片服务器地址
      headers: {
        Authorization: "Bearer " + getToken(),
      },
      fileList: []
    };
  },

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,我们可以得知若依框架可以通过整合百度Ueditor实现图片和视频上传的功能。下面是一个简单的演示,介绍如何使用若依框架上传视频: 1.首先,需要在项目中引入百度Ueditor的jar包,并在前端页面中引入Ueditor的js文件。 2.在后端代码中,需要编写一个Controller来处理视频上传的请求。可以使用@RequestParam注解来获取前端传递过来的视频文件。 ```java @PostMapping("/uploadVideo") @ResponseBody public String uploadVideo(@RequestParam("file") MultipartFile file) { // 处理视频上传的逻辑 return "success"; } ``` 3.在处理视频上传的逻辑中,可以使用JavaCV等第三方库来对视频进行处理,例如获取视频时长、截取视频缩略图等。 ```java // 获取视频时长 FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(file.getInputStream()); grabber.start(); int duration = grabber.getLengthInFrames() / grabber.getFrameRate(); // 截取视频缩略图 FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(file.getInputStream()); grabber.start(); Java2DFrameConverter converter = new Java2DFrameConverter(); BufferedImage image = converter.convert(grabber.grabImage()); ImageIO.write(image, "jpg", new File("thumbnail.jpg")); ``` 4.最后,需要在前端页面中添加一个视频上传的按钮,并通过Ueditor的配置来实现视频上传的功能。 ```javascript var ue = UE.getEditor('editor', { // 配置Ueditor serverUrl: '/ueditor', toolbars: [ ['insertvideo'] ], videoAllowFiles: ['.mp4', '.avi', '.wmv', '.rmvb'] }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值