首页 > 图片的另一种展现—将后台图片编码直接展现为图片

图片的另一种展现—将后台图片编码直接展现为图片

1、应用场景

           开发过程中,遇到这样的需求:需要将服务器上的图片展现在页面上,但是图片所在服务器不是对外的,图片所在服务器与应用服务器也不在同一台机器上,这时候就需要在开发中先将图片读出来,返回给应用服务器,应用服务器再对读取的图片进行处理,并展现。

           一般,我们在struts2中我们都会通过两次请求,来获取图片,有一次的请求是专用来获取图片的流。

           Struts的配置如下:

<result type="stream"> <param name="contentType">image/jpegparam>   <param name="inputName">inputStreamparam>   <param name="contentDisposition">filename="struts-gif.zip"param>   <param name="bufferSize">4096param>   
result>

          现在我们使用新的方式来获取图片,并展示。

2、读取图片

          (a) 首先我们先读取图片,并编码;

public static String getImageStr(String path){File file = new File(path);if(file.exists()){InputStream inputStream = null;byte[] data = null;try {inputStream = new FileInputStream(file);data = new byte[inputStream.available()];inputStream.read(data);inputStream.close();} catch (Exception e) {e.printStackTrace();} BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}    else {return null;}}

           (b) 服务交互部分使用的是hessian,略

           (c) 页面的展现:

                                <td align="center" height="120" width="20%">图片:td><td height="24" width="40%" align="center"><img id="imgObj" width="96" height="118" alt="y" src="data:image/gif;base64,photoStr"/>"/>td>

            开发中使用了Struts2,展现的时候我们只需要让图片的src等于图片的base64的编码即可,不过切记编码必须和data:image/gif;base64,一起

转载于:https://www.cnblogs.com/kakag/p/3470083.html

更多相关: