【我要程式設計】Java技術手冊之根據圖片連結把圖片轉化為io流,並輸出到頁面上的方法
適用場景:A程式只能內網訪問,B程式可以外網訪問,只有B程式可以訪問A程式,使用者需要通過B程式訪問A程式的圖片資源。這是可以使用該方法。
@RequestMapping("/getImageByPath")
public void getImageByTomcat(String path,String suffix,HttpServletResponse response) {
OutputStream os=null;
try {
//這裡需要一個最終能在伺服器瀏覽器只能訪問圖片的地址
String strUrl = "http://ip地址/image/"+path;
URL url = new URL(strUrl );
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inputStream = conn.getInputStream();//通過輸入流獲取圖片資料
os = response.getOutputStream();
int count = 0;
byte[] buffer = new byte[1024 * 8];
while ((count = inputStream.read(buffer)) != -1) {
os.write(buffer, 0, count);
os.flush();
}
inputStream.close();
//設定傳送到客戶端的響應內容型別
if (path.toLowerCase().endsWith("jpg"))
{
response.setContentType("image/jpg");
}
else if (path.toLowerCase().endsWith("jpeg"))
{
response.setContentType("image/jpeg");
}
else if (path.toLowerCase().endsWith("gif"))
{
response.setContentType("image/gif");
}
else if (path.toLowerCase().endsWith("png"))
{
response.setContentType("image/png");
}
else if (path.toLowerCase().endsWith("bmp"))
{
response.setContentType("image/bmp");
}else if (path.toLowerCase().endsWith("mp3"))
{
response.setContentType("audio/mpeg");
}
os = response.getOutputStream();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != os){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
本文整理於“我要程式設計”免費Java課程之學習筆記