import org.apache.commons.compress.utils.IOUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.mock.web.MockMultipartFile;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @description: 文件操作工具类
* @author: LiYu
* @create: 2021-09-04 17:38
**/
public class FileUtil {
/**
* 根据地址获得数据的输入流
*
* @param strUrl 网络连接地址
* @return url的输入流
*/
public static InputStream getInputStreamByUrl(String strUrl) {
HttpURLConnection conn = null;
try {
URL url = new URL(strUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(20 * 1000);
final ByteArrayOutputStream output = new ByteArrayOutputStream();
IOUtils.copy(conn.getInputStream(), output);
return new ByteArrayInputStream(output.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
public static MultipartFile onlineAddressTransferFile(String strUrl) throws IOException {
InputStream stream = FileUtil.getInputStreamByUrl(strUrl);
if (!ObjectUtils.isEmpty(stream)) {
MultipartFile file = new MockMultipartFile("网络图片", "网络图片","", stream);
return file;
}
return null;
}
}