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