forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
package com.alibaba.excel.converters.url; |
|
|
|
import java.io.IOException; |
|
import java.io.InputStream; |
|
import java.net.URL; |
|
import java.net.URLConnection; |
|
|
|
import com.alibaba.excel.converters.Converter; |
|
import com.alibaba.excel.metadata.GlobalConfiguration; |
|
import com.alibaba.excel.metadata.data.WriteCellData; |
|
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
|
import com.alibaba.excel.util.IoUtils; |
|
|
|
/** |
|
* Url and image converter |
|
* |
|
* @author Jiaju Zhuang |
|
* @since 2.1.1 |
|
*/ |
|
public class UrlImageConverter implements Converter<URL> { |
|
public static int urlConnectTimeout = 1000; |
|
public static int urlReadTimeout = 5000; |
|
|
|
@Override |
|
public Class<?> supportJavaTypeKey() { |
|
return URL.class; |
|
} |
|
|
|
@Override |
|
public WriteCellData<?> convertToExcelData(URL value, ExcelContentProperty contentProperty, |
|
GlobalConfiguration globalConfiguration) throws IOException { |
|
InputStream inputStream = null; |
|
try { |
|
URLConnection urlConnection = value.openConnection(); |
|
urlConnection.setConnectTimeout(urlConnectTimeout); |
|
urlConnection.setReadTimeout(urlReadTimeout); |
|
inputStream = urlConnection.getInputStream(); |
|
byte[] bytes = IoUtils.toByteArray(inputStream); |
|
return new WriteCellData<>(bytes); |
|
} finally { |
|
if (inputStream != null) { |
|
inputStream.close(); |
|
} |
|
} |
|
} |
|
|
|
}
|
|
|