java将网络路径图片上传至服务器
需求:将将微信头像(例:https://thirdwx.qlogo.cn/mmopen/vi_32/Q0jsdfsdfdsf/132)上传至服务器
思路:
1.先将路径通过URL转换成文件流(InputStream)
/**
* 通过网络地址获取文件InputStream
* @param path 地址
* @return
*/
private static InputStream returnBitMap(String path) {
URL url = null;
InputStream is = null;
try {
url = new URL(path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();//利用HttpURLConnection对象,我们可以从网络中获取网页数据.
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream(); //得到网络返回的输入流
} catch (IOException e) {
e.printStackTrace();
}
return is;
}
2.再把文件流(InputStream)转换成MultipartFile上传
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>RELEASE</version>
</dependency>
MultipartFile multipartFile = new MockMultipartFile("temp.jpg","temp.jpg","", inputStream);
MultipartFile multipartFile = new MockMultipartFile("temp.jpg","temp.jpg",
ContentType.APPLICATION_OCTET_STREAM.toString(), returnBitMap(fileName));
3.向一个带参的地址上传图片
private final static String BOUNDARY = UUID.randomUUID().toString()
.toLowerCase().replaceAll("-", "");// 边界标识
private final static String PREFIX