Java 通过url获取图片传给前端
把新学的功能做个记录,一下是具体的代码实现。
具体代码实现
前端传入的 url分为服务器图片的url和网络图片url,因此需要做一个判断,来区分它们。
/**
* 通过url获取图片传给前端
* @param url 前端传过来的图片url
* @param request
* @param response
*/
@RequestMapping(value = "/getimg")
public void getimg(String url,HttpServletRequest request, HttpServletResponse response){
System.out.println("获取的url"+url);
String str1="http";
boolean b=url.contains(str1);
if (b==false){//判断是否是网络图片的url
url="http://*****:8080/"+url;
}
try {
URL urlimg = new URL(url);
//创建链接对象
URLConnection urlConnection = urlimg.openConnection();
//设置超时
urlConnection.setConnectTimeout(1000);
urlConnection.setReadTimeout(5000);
urlConnection.connect();
//获取流
InputStream inputStream = urlConnection.getInputStream();
//读取图片
BufferedImage bufferedImage = ImageIO.read(inputStream);
if (bufferedImage!=null){
//获取图片格式
String format = url.substring(url.lastIndexOf(".") + 1);
//打印图片
ImageIO.write(bufferedImage,format,response.getOutputStream());// 将文件流放入response中
}
}catch (Exception e){
System.out.println("图片异常"+e);
System.out.println("参数异常"+url);
}
}
前端代码实现
<img src="/getimg?url=图片的url">