123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package com.ruoyi.common.utils.file;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.FileInputStream;
- import java.io.InputStream;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.Arrays;
- import org.apache.poi.util.IOUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import com.ruoyi.common.config.RuoYiConfig;
- import com.ruoyi.common.constant.Constants;
- import com.ruoyi.common.utils.StringUtils;
- /**
- * 图片处理工具类
- *
- * @author ruoyi
- */
- public class ImageUtils
- {
- private static final Logger log = LoggerFactory.getLogger(ImageUtils.class);
- public static byte[] getImage(String imagePath)
- {
- InputStream is = getFile(imagePath);
- try
- {
- return IOUtils.toByteArray(is);
- }
- catch (Exception e)
- {
- log.error("图片加载异常 {}", e);
- return null;
- }
- finally
- {
- IOUtils.closeQuietly(is);
- }
- }
- public static InputStream getFile(String imagePath)
- {
- try
- {
- byte[] result = readFile(imagePath);
- result = Arrays.copyOf(result, result.length);
- return new ByteArrayInputStream(result);
- }
- catch (Exception e)
- {
- log.error("获取图片异常 {}", e);
- }
- return null;
- }
- /**
- * 读取文件为字节数据
- *
- * @param key 地址
- * @return 字节数据
- */
- public static byte[] readFile(String url)
- {
- InputStream in = null;
- ByteArrayOutputStream baos = null;
- try
- {
- if (url.startsWith("http"))
- {
- // 网络地址
- URL urlObj = new URL(url);
- URLConnection urlConnection = urlObj.openConnection();
- urlConnection.setConnectTimeout(30 * 1000);
- urlConnection.setReadTimeout(60 * 1000);
- urlConnection.setDoInput(true);
- in = urlConnection.getInputStream();
- }
- else
- {
- // 本机地址
- String localPath = RuoYiConfig.getProfile();
- String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX);
- in = new FileInputStream(downloadPath);
- }
- return IOUtils.toByteArray(in);
- }
- catch (Exception e)
- {
- log.error("获取文件路径异常 {}", e);
- return null;
- }
- finally
- {
- IOUtils.closeQuietly(in);
- IOUtils.closeQuietly(baos);
- }
- }
- }
|