Java从服务器获得图片输入流InputStream,并使用response输出到页面


1、创建测试类(FileController.java)

package com.jeff.controller; import java.io.InputStream; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.jeff.utils.HttpUtils; @RestController public class FileController { /** * * @description: 从服务器端获得图片,并输出到页面 * @author: Jeff * @date: 2019年12月7日 * @param resp */ @RequestMapping("getImage") public void getImage(HttpServletResponse resp) { // 服务器图片url String urlPath = "http://192.168.1.100:8080/images/jie.jpg"; // 从服务器端获得图片,并输出到页面 InputStream inputStream = HttpUtils.getInputStream(urlPath); HttpUtils.writeFile(resp, inputStream); } } 

2、创建http工具类(HttpUtils.java)

package com.jeff.utils; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import javax.servlet.http.HttpServletResponse; public class HttpUtils { /** * * @description: 从服务器获得一个输入流(本例是指从服务器获得一个image输入流) * @author: Jeff * @date: 2019年12月7日 * @return */ public static InputStream getInputStream(String urlPath) { InputStream inputStream = null; HttpURLConnection httpURLConnection = null; try { URL url = new URL(urlPath); httpURLConnection = (HttpURLConnection) url.openConnection(); // 设置网络连接超时时间 httpURLConnection.setConnectTimeout(3000); // 设置应用程序要从网络连接读取数据 httpURLConnection.setDoInput(true); httpURLConnection.setRequestMethod("GET"); int responseCode = httpURLConnection.getResponseCode(); System.out.println("responseCode is:" + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { // 从服务器返回一个输入流 inputStream = httpURLConnection.getInputStream(); } else { inputStream = httpURLConnection.getErrorStream(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return inputStream; } /** * * @description: 将输入流输出到页面 * @author: Jeff * @date: 2019年12月7日 * @param resp * @param inputStream */ public static void writeFile(HttpServletResponse resp, InputStream inputStream) { OutputStream out = null; try { out = resp.getOutputStream(); int len = 0; byte[] b = new byte[1024]; while ((len = inputStream.read(b)) != -1) { out.write(b, 0, len); } out.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (Exception e) { e.printStackTrace(); } } } } 

 https://www.it610.com/article/1282209960490450944.htm


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM