记录一个在实际项目中遇到的问题。
项目需求:
- 上传图片到云服务器上。
- 将云服务器上的图片显示在页面上。
实现思路:
- 根据云服务器的标准API,将图片文件上传,以一个UUID命名。在数据库中保存UUID。
- 从云服务器根据文件名UUID以流的格式获取图片,将流用HTTPServletResponse写回到前端页面。
代码实现:
/**
* 根据地址获得数据的字节流
*
* @param strUrl
* 网络连接地址
* @return
*/
public static byte[] getImageFromNetByUrl(String strUrl) {
try {
URL url = new URL(strUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();// 通过输入流获取图片数据
byte[] btImg = readInputStream(inStream);// 得到图片的二进制数据
return btImg;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
<