HTML 标签
<img class="weui-uploader__file" style="background-image: url(https://blog.csdn.net/'+%20window.location.protocol%20+%20"//"%20+%20window.location.host%20+"/utils/fileStream?imgUrl="%20+%20encodeURIComponent(imgList[j]) +')" ></img>
JAVA Controller
/**
* 根据图片地址获取图片文件流
*
* @param request
* @param response
* @param imgUrl
*/
@RequestMapping(value = "/fileStream")
@ResponseBody
public void fileStream(HttpServletRequest request, HttpServletResponse response, String imgUrl) {
try {
InputStream is = getInputStream(kehuApiConfig.getKehuApiUrlByImage() + URLEncoder.encode(imgUrl, "utf-8"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream();
int ch = 0;
while (-1 != (ch = is.read())) {
baos.write(ch);
}
os.write(baos.toByteArray());
is.close();
baos.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 请求别人的图片url地址,获得文件流
*
* @param imgUrl
* @return
*/
public static InputStream getInputStream(String imgUrl) {
InputStream inputStream = null;
HttpURLConnection httpURLConnection = null;
try {
URL url = new URL(imgUrl);
httpURLConnection = (HttpURLConnection)url.openConnection();
// 设置网络连接超时时间
httpURLConnection.setConnectTimeout(3000);
// 设置应用程序要从网络连接读取数据
httpURLConnection.setDoInput(true);
httpURLConnection.setRequestMethod("GET");
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == 200) {
// 从服务器返回一个输入流
inputStream = httpURLConnection.getInputStream();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inputStream;
}
参考两个帖子
1:https://blog.csdn.net/neu_yousei/article/details/22413855
2:https://www.cnblogs.com/lazyli/p/11739245.html
这篇博客介绍了如何在HTML中通过<img>标签显示图片,并利用Java控制器处理图片URL,获取图片文件流。主要涉及URL连接、输入输出流操作,以及异常处理。文章参考了两个关于网络请求和文件流处理的教程。

被折叠的 条评论
为什么被折叠?



