4 changed files with 211 additions and 9 deletions
@ -0,0 +1,100 @@ |
|||||
|
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(baos); |
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue