精华内容
下载资源
问答
  • } } } 直接访问springmvc路径 直接访问通过的形式返回图片,但是这个有一个缺陷就是 返回的title是路径名称加像素。 为了解决这种问题 从前端改接受的方式完成。 前端代码:图片 后端代码: @RequestMapping...

    后端代码:

    @RequestMapping(value = "read")

    public void index(Model model, HttpServletRequest req,

    HttpServletResponse resp, String attachmentId) {

    byte [] bytes = null;

    ServletOutputStream sos =null;// 将图像输出到Servlet输出流中。

    try {

    GetImageRes getImageRes = acctManager.getImageBytes(attachmentId);

    bytes = getImageRes.getFilebyte();

    ByteArrayInputStream in = new ByteArrayInputStream(bytes); //将b作为输入流;

    BufferedImage image = ImageIO.read(in);

    resp.setHeader("Pragma", "no-cache");

    resp.setHeader("Cache-Control", "no-cache");

    resp.setDateHeader("Expires", 0);

    sos = resp.getOutputStream();// 将图像输出到Servlet输出流中。

    ImageIO.write(image, "jpeg", sos);

    } catch (IOException e) {

    e.printStackTrace();

    } finally {

    try {

    sos.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    直接访问springmvc路径 直接访问通过流的形式返回图片,但是这个有一个缺陷就是 返回的title是路径名称加像素。

    为了解决这种问题  从前端改接受流的方式完成。

    前端代码:

    图片

    %24!imgUrl

    后端代码:

    @RequestMapping(value = "readHtml")

    public String readHtml(Model model, HttpServletRequest req,

    HttpServletResponse resp, String attachmentId,String recommendId) {

    model.addAttribute("imgUrl", "这里直接写上访问流路径");

    return "tempImage/tempImage";

    }

    这里就完成了 。

    展开全文
  • 目前从c#项目转到java,有一个功能是根据图片路径返回图片的字节,实现如下:public static string GetImageByUrl(string imagePath){System.Net.WebRequest webreq = System.Net.WebRequest.Create(imagePath);...

    目前从c#项目转到java,有一个功能是根据图片路径返回图片的字节流,实现如下:

    public static string GetImageByUrl(string imagePath)

    {

    System.Net.WebRequest webreq = System.Net.WebRequest.Create(imagePath);

    int port = TypeUtil.ToInt32(CommonUtil.GetAppSetting("ProxyPort"));

    webreq.Proxy = new WebProxy(CommonUtil.GetAppSetting("Proxy"), port);

    // 超时时间 10s

    webreq.Timeout = 10000;

    System.Net.WebResponse webres = webreq.GetResponse();

    System.IO.Stream stream = webres.GetResponseStream();

    System.Drawing.Image img1 = System.Drawing.Image.FromStream(stream);

    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(img1);

    return ImgToBase64String(bmp);

    }

    //图片转为base64编码的字符串

    public static string ImgToBase64String(Bitmap bmp)

    {

    try

    {

    MemoryStream ms = new MemoryStream();

    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

    byte[] arr = new byte[ms.Length];

    ms.Position = 0;

    ms.Read(arr, 0, (int)ms.Length);

    ms.Close();

    return Convert.ToBase64String(arr);

    }

    catch (Exception ex)

    {

    return null;

    }

    }

    用java进行重写如下

    /**

    * 从URL中获取输出流

    *

    * @param urlPath

    * @return

    */

    public static byte[] getImageFromURL(String urlPath) {

    byte[] data = null;

    InputStream inputStream = null;

    HttpURLConnection conn = null;

    try {

    URL url = new URL(urlPath);

    conn = (HttpURLConnection) url.openConnection(getProxy());

    conn.setDoInput(true);

    conn.setRequestMethod(HttpMethod.GET.name());

    conn.setConnectTimeout(10000);

    inputStream = conn.getInputStream();

    if (conn.getResponseCode() == 200) {

    data = readInputStream(inputStream);

    } else {

    data = null;

    }

    } catch (MalformedURLException e) {

    CLogger.error("getImageFromURL", e);

    } catch (IOException e) {

    CLogger.error("getImageFromURL", e);

    } finally {

    try {

    if (inputStream != null) {

    inputStream.close();

    }

    } catch (IOException e) {

    CLogger.error("getImageFromURL", e);

    }

    conn.disconnect();

    }

    return data;

    }

    /**

    * 读取输入流

    *

    * @param is

    * @return

    */

    public static byte[] readInputStream(InputStream is) {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    byte[] buffer = new byte[1024];

    int length = -1;

    try {

    while ((length = is.read(buffer)) != -1) {

    baos.write(buffer, 0, length);

    }

    baos.flush();

    } catch (IOException e) {

    CLogger.error("readInputStream", e);

    }

    byte[] data = baos.toByteArray();

    try {

    is.close();

    baos.close();

    } catch (IOException e) {

    CLogger.error("readInputStream", e);

    }

    return data;

    }

    final byte[] image = getImageFromURL(request.getImageUrl());

    String imageData = "";

    if (ArrayUtil.isNotEmpty(image)) {

    //base64加密

    imageData = Base64.encodeBase64String(image);

    }

    最后的结果总是不同,想问一下我该如何写java方法呢?谢谢各位

    展开全文
  • import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletExc...

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    import javax.servlet.ServletException;

    import javax.servlet.ServletOutputStream;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import com.sun.image.codec.jpeg.JPEGCodec;

    import com.sun.image.codec.jpeg.JPEGImageDecoder;

    import com.sun.image.codec.jpeg.JPEGImageEncoder;

    public class Servlet2 extends HttpServlet {

    // 设定输出的类型

    private static final String GIF = "image/gif;charset=GB2312";

    private static final String JPG = "image/jpeg;charset=GB2312";

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    /*String imagePath = "D:\1234.gif";*/

    String imagePath = this.getServletContext().getRealPath("/img/1234.gif");//获取真实路径

    response.reset();

    OutputStream output = response.getOutputStream();// 得到输出流

    if (imagePath.toLowerCase().endsWith(".jpg"))// 使用编码处理文件流的情况:

    {

    response.setContentType(JPG);// 设定输出的类型

    // 得到图片的真实路径

    // 得到图片的文件流

    InputStream imageIn = new FileInputStream(new File(imagePath));

    // 得到输入的编码器,将文件流进行jpg格式编码

    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);

    // 得到编码后的图片对象

    BufferedImage image = decoder.decodeAsBufferedImage();

    // 得到输出的编码器

    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);

    encoder.encode(image);// 对图片进行输出编码

    imageIn.close();// 关闭文件流

    }

    if (imagePath.toLowerCase().endsWith(".gif"))// 不使用编码处理文件流的情况:

    {

    response.setContentType(GIF);

    File file = new File(imagePath);

    FileInputStream fis = new FileInputStream(file);

    ServletOutputStream sos = response.getOutputStream();

    byte[] b = new byte[1024];

    int n;

    int l = 0;

    while ((n = fis.read(b)) != -1) {

    l = l + n;

    sos.write(b, 0, n);

    }

    response.setContentLength(l);

    fis.close();

    sos.close();

    }

    output.close();

    }

    }

    展开全文
  • Java请求网络图片返回流

    千次阅读 2014-12-19 16:09:56
    HttpURLConnection方式获取图片以及返回的文本

    需要ImageIO支持

    /**
    	 * get方法提交
    	 * 
    	 * @param url
    	 *            String 访问的URL
    	 * @param param
    	 *            String 提交的内容
    	 * @param repType
    	 *            返回类型
    	 * @return String
    	 * */
    	public static byte[] getRequest(String url, String repType) {
    		String result = "";
    		byte[] resByt = null;
    		try {
    			URL urlObj = new URL(url);
    			HttpURLConnection conn = (HttpURLConnection) urlObj
    					.openConnection();
    
    			// 连接超时
    			conn.setDoInput(true);
    			conn.setDoOutput(true);
    			conn.setConnectTimeout(25000);
    
    			// 读取超时 --服务器响应比较慢,增大时间
    			conn.setReadTimeout(25000);
    			conn.setRequestMethod("GET");
    
    			conn.addRequestProperty("Accept-Language", "zh-cn");
    			conn.addRequestProperty("Content-type", repType);
    			conn.addRequestProperty(
    					"User-Agent",
    					"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)");
    			conn.connect();
    
    			PrintWriter out = new PrintWriter(new OutputStreamWriter(
    					conn.getOutputStream(), "UTF-8"), true);
    
    			if ("image/jpeg".equals(repType)) {
    				ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    				BufferedImage bufImg = ImageIO.read(conn.getInputStream());
    				ImageIO.write(bufImg, "jpg", outputStream);
    				resByt = outputStream.toByteArray();
    				outputStream.close();
    
    			} else {
    				// 取得输入流,并使用Reader读取
    				BufferedReader reader = new BufferedReader(
    						new InputStreamReader(conn.getInputStream()));
    
    				System.out.println("=============================");
    				System.out.println("Contents of get request");
    				System.out.println("=============================");
    				String lines = null;
    				while ((lines = reader.readLine()) != null) {
    					System.out.println(lines);
    					result += lines;
    					result += "\r";
    				}
    				resByt = result.getBytes();
    				reader.close();
    			}
    			out.print(resByt);
    			out.flush();
    			out.close();
    			// 断开连接
    			conn.disconnect();
    			System.out.println("=============================");
    			System.out.println("Contents of get request ends");
    			System.out.println("=============================");
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    		return resByt;
    	}


    展开全文
  • java 下载图片流

    2011-12-09 18:04:00
    昨天在做日常时碰到了一个问题:根据图片的URL... 第一种方案:通过HttpURLConnection创建连接,然后,从该连接获取图片流。 1 public class ImageReaderUtil { 2 /** 3 * @param 4 * imageUrl 5 * @return 6 ...
  • JAVA下载图片流

    2012-02-15 13:30:06
    昨天在做日常时碰到了一个问题:根据图片的URL地址...第一种方案:通过HttpURLConnection创建连接,然后,从该连接获取图片流。 public class ImageReaderUtil {  /**  * @param  * imageUrl  * @return  * by
  • 这个方法直接获得图片 public void diplayImageBySize(HttpServletRequest request, HttpServletResponse response, String imgurl, String id, int w, int h) throws IOException { response.setHeader("Cache-...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼重写Panel类的paint(Graphics g)方法,在方法内容调用g.drawImage(Image image,int x,int y,ImageObserver observer)方法,通过Panel类的getBounds()方法返回该组件的...
  • 主要介绍了利用weixin-java-miniapp生成小程序码并直接返回图片文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 展开全部FileOutputStream很明显你是用的文件流返回32313133353236313431303231363533e4b893e5b19e31333366303733的// 以byte的方式打开文件 d:\1.gifFileInputStream hFile = new FileInputStream(url);...
  • java 实现Excel导出(包含图片) 最近做的项目中涉及到了利用poi进行excel导出,本身导出没有什么难度的,但是遇到一个需要导出图片的需求,在实现上有一点阻力,现在解决了,记录一下。 一、所需依赖: <!-- ...
  • SpringMVC返回图片的几种方式后端提供服务,通常返回的json串,但是某些场景下可能需要直接返回二进制流,如一个图片编辑接口,希望直接将图片流返回给前端,此时可以怎么处理?I. 返回二进制图片主要借助的是 ...
  • Java IO概述IO就是输入/输出。Java IO类库基于抽象基础类InputStream和OutputStream构建了一套I/O体系,主要解决从数据源读入数据和将数据写入到目的地问题。我们把数据源和目的地可以理解为IO的两端。当然,通常...
  • java接口返回图片

    千次阅读 2018-07-03 16:53:27
    // 生成图片存入内存中BufferedImage image = base64StringToImage(qrCode);// 将内存中的图片通过流动形式输出到客户端response.setHeader("Content-Type", "image/jpeg");ImageIO.write(image...
  • 这个方法直接获得图片 public void diplayImageBySize(HttpServletRequest request, HttpServletResponse response, String imgurl, String id, int w, int h) throws IOException { response.setHeader("Cache-...
  • 后端提供服务,通常返回的json串,但是某些场景下可能需要直接返回二进制流,如一个图片编辑接口,希望直接将图片流返回给前端,此时可以怎么处理?I. 返回二进制图片主要借助的是 HttpServletResponse这个对象,...
  • 1.前端 <img:src="`... 2.后台 ... * IO读取图片 by:long * @param imgPath * @param request * @param response * @return * @throws IOExcep..
  • /*** @throws IOException** @category 上传文档* @Title: uploadImage* @Description:* @return void 返回类型* @throws*/protected int uploadFile(HttpServletRequest request, HttpServletResponse respons...
  • 1转化为base64 public static String download(String... //ftpUrl :文件夹路径 afzh:图片路径 FTPClient ftpClient = new FTPClient(); int temp=index+1; InputStream inputStream = null; String re=null; try
  • 本资源包括word模板、aspose-words相关jar包、poi相关jar包,及java类,该类引入工程,导入jar包即可运行。警告:请勿用于商业用途,仅供学习研究,如有任何版权纠纷,本人概不负责!
  • 返回的是base64的编码的,前端使用<img src="返回的值"/> 即可 @Transactional(readOnly = false) public synchronized List<String> copyFileByBase64(Inner inn, String pages, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460
精华内容 184
关键字:

java返回图片流

java 订阅