您的位置:首页 > 编程语言 > Java开发

spring mvc 从本地文件中读取图片,并显示在页面中

2017-11-13 15:38 1271 查看
//后台java代码
@RequestMapping("/bmpShow")
public void bmpShow(HttpServletRequest request,HttpServletResponse response,String path) throws IOException {
String imagePath = Global.getUserfilesBaseDir()+path;
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);
ServletContext context  =RequestContextUtils.getWebApplicationContext(request).getServletContext();// 得到背景对象
InputStream imageIn = context.getResourceAsStream(imagePath);// 文件流
BufferedInputStream bis = new BufferedInputStream(imageIn);// 输入缓冲流
BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流
byte data[] = new byte[4096];// 缓冲字节数
int size = 0;
size = bis.read(data);
while (size != -1) {
bos.write(data, 0, size);
size = bis.read(data);
}
bis.close();
bos.flush();// 清空输出缓冲流
bos.close();
}
output.close();
}
//页面
<c:forEach var="referenceBmp" items="${listImagePath}">
            <li><img data-original="${ctx}/cms/order/bmpShow?path=${referenceBmp.bmpPath}" width=30%  src="${ctx}/cms/order/bmpShow?path=${referenceBmp.bmpPath}" alt="${referenceBmp.name}">
            <div class="close-reveal-modal1">
             <h1 style=" color:#333">${referenceBmp.name}</h1>
             </div>
             <div class="close-reveal-modal">
             <input  class="btn btn-primary" type="button" onclick="ondelBmp('${referenceBmp.id}','${referenceBmp.bmpPath}','${referenceBmp.orderId}')" value="删除">
             </div>
            </li><br>
</c:forEach>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息