当前位置:首页 > JAVA > 正文内容

springboot中下载远程图片并转换为base64

高老师2年前 (2024-06-19)JAVA425

代码如下:

package com.x3.gls.util;

import com.x3.base.core.exception.BusinessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import java.util.Base64;

/**
 * 图片远程下载
 */
@Component
public class RemoteImageUtil {

    /**
     * 日志
     */
    private static final Logger log = LoggerFactory.getLogger(HttpPostUtil.class);

    /**
     * 图片远程下载并转换为Base64
     *
     * @param imageUrl
     * @return
     */
    public static String convertImageUrlToBase64(String imageUrl) {
        RestTemplate restTemplate = new RestTemplate();
        try {
            ResponseEntity<byte[]> responseEntity = restTemplate.getForEntity(imageUrl, byte[].class);
            byte[] imageBytes = responseEntity.getBody();
            if (imageBytes != null) {
                return Base64.getEncoder().encodeToString(imageBytes);
            } else {
                return null;
            }
        } catch (Exception e) {
            log.debug("RemoteImageUtil-convertImageUrlToBase64-01-异常响应数据:{}", e.getMessage());
            throw new BusinessException("RemoteImageUtil-convertImageUrlToBase64-02",
                    "下载文件[" + imageUrl + "]出错:" + e.getMessage(), imageUrl);
        }
    }
}


扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/782.html

分享给朋友:

“springboot中下载远程图片并转换为base64” 的相关文章

java一个类可以有多个构造方法

java一个类可以有多个构造方法

java一个类可以有多个构造方法,根据传参类型和个数来匹配执行哪个构造方法。public class Member {     public Member(){      ...

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问public synchronized void setOrderPay(){ }加上synchronized 修饰符即可...

java stringBuffer,java stringBuffer反转字符串,java stringBuffer delete删除字符/移除字符,java stringBuffer在指定位置插入字符串,java stringBuffer替换指定位置的字符串,java stringBuffer获取指定索引的值

java stringBuffer,java stringBuffer反转字符串,java stringBuffer delete删除字符/移除字符,java stringBuffer在指定位置插入字符串,java stringBuffer替换指定位置的字符串,java stringBuffer获取指定索引的值

java stringBuffer(1).stringBuffer和stringBuilder区别stringBuffer是线程安全的,stringBuilder速度更快(2).简单的stringBuffer例子StringBuffer sBuffer = new&nb...

java数组,java创建数组,java创建数组并赋值,java数组元素个数,java foreach 循环数组,java数组排序

java数组,java创建数组,java创建数组并赋值,java数组元素个数,java foreach 循环数组,java数组排序

(1).创建数组double[] myList = new double[size];  //推荐创建方式 double myList[] = new double[size];  ...

java睡眠方法,java睡眠函数,java睡眠时间,java睡眠一分钟,java睡眠五秒钟

java睡眠方法,java睡眠函数,java睡眠时间,java睡眠一分钟,java睡眠五秒钟

(1).java睡眠函数Thread.sleep(时间);  //单位为毫秒(2).java睡眠函数例子Date dNow = new Date(); SimpleDateFormat ft = new&nbs...

java获取时间戳,java时间戳获取

java获取时间戳,java时间戳获取

System.out.println("当前时间戳(秒): " + System.currentTimeMillis()/1000); System.out.println("当前时间戳(毫秒): " +&nb...