最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂一样,但任务下达下来了,做为程序员只有选择去执行喽,于是找了点资料看了会api,

嘿感觉挺简单的,由于是第一次采用IO流的方式进行读取图片供页面显示,所以把以下代码记录一下

 

后台代码:

  1. <span style="white-space:pre">  </span>/**
  2. * IO流读取图片 by:long
  3. * @return
  4. */
  5. @RequestMapping(value = "/IoReadImage/{imgName}", method = RequestMethod.GET)
  6. public String IoReadImage(@PathVariable String imgName,HttpServletRequest request,HttpServletResponse response) throws IOException {
  7. ServletOutputStream out = null;
  8. FileInputStream ips = null;
  9. try {
  10. //获取图片存放路径
  11. String imgPath = Constans.FOLDER_IMAGE + imgName;
  12. ips = new FileInputStream(new File(imgPath));
  13. response.setContentType("multipart/form-data");
  14. out = response.getOutputStream();
  15. //读取文件流
  16. int len = 0;
  17. byte[] buffer = new byte[1024 * 10];
  18. while ((len = ips.read(buffer)) != -1){
  19. out.write(buffer,0,len);
  20. }
  21. out.flush();
  22. }catch (Exception e){
  23. e.printStackTrace();
  24. }finally {
  25. out.close();
  26. ips.close();
  27. }
  28. return null;
  29. }

前台代码 - 方式一:

  1. <span style="white-space:pre">  </span><div style="float: left;">
  2. <#--${model.userDatil.photo} 为数据库存放的文件名称-->
  3. <img src="${ctx}/userInfo/IoReadImage/${model.userDatil.photo}" id="npcImg" width="125" height="148"/>
  4. <input type="hidden" id="photo" name="photo"/>
  5. </div>
 

js代码 - 方式二:

  1. var npcName = $('#npcImg').data('val');
  2. var img = document.getElementById("npcImg");
  3. img.src = '/userInfo/IoReadImage/'+npcName;
jQuery代码 - 方式三:
  1. <span style="white-space:pre">  </span>$('#npcImg').attr('src','/userInfo/IoReadImage/'+npcName);

好了就这么简单,前台就可以显示图片了,总共才几句代码,就不额外注释说明了

 
原文出处:
[1] 江西DJ烟仔ReMix, java IO流读取图片供前台显示, http://blog.csdn.net/u014598014/article/details/70232854

java IO流读取图片供前台显示的更多相关文章

  1. java io流读取 和commons.io的使用

    前提:记事本里面一共有605个字 1.使用BufferedReader和FileReader来读取txt里面的内容,用时相对短.读完记得关闭流br.close() 2.指定UTF-8输出格式,使用Fi ...

  2. java IO流复制图片

    一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...

  3. java IO流 复制图片

    (一)使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // St ...

  4. Java IO流读取文件

    使用指定编码读取文件 public static String toString(File file, String charset){ StringBuilder result = new Stri ...

  5. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...

  6. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...

  7. Java IO 流总结篇

    1. 写在前面的话 I/O ,I 是 Input (输入)的缩写,O是Output (输出) 的缩写,众所周知,人与人之间想要沟通交流,就需要讲彼此都能听懂的语言,比如大家都统一说英语. 人类如果想和 ...

  8. java IO流 总结

    [-] 1什么是IO 2数据流的基本概念 1 数据流 2 输入流Input  Stream 3 输出流 数据流分类 3 标准IO 命令行参数 标准输入输出数据流 4javaIO层次体系结构 5 非流式 ...

  9. java IO流文件的读写具体实例(转载)

    引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能 ...

随机推荐

  1. java8 Lambda 表达式和函数式接口快速理解

    前言 接上篇文章 java8 新特性 由于上篇过于庞大,使得重点不够清晰,本篇单独拿出 java8 的 Lambda 表达式和函数式接口说明. Lambda 表达式 lambda 表达式其实就是使用了 ...

  2. 2019-11-29-WPF-依赖属性绑定不上调试方法

    原文:2019-11-29-WPF-依赖属性绑定不上调试方法 title author date CreateTime categories WPF 依赖属性绑定不上调试方法 lindexi 2019 ...

  3. css权重等级

    1.问题起因(在一次偶然编写css发现的,.div2 p>.div1 p>.p1,然后做了测试并找查相关资料) 2.解决方案 首先看哪一级的权重高 1.!important,加在样式属性值 ...

  4. Exif认识(二)

    通过php获取exif信息后,像光圈和快门的值还需要转换下,才是我们常用看得懂的值 ApertureValue的值: 拍照时镜头的光圈. 单位是 APEX. 为了转换成普通的 F-number(F-s ...

  5. Winform中设置ZedGraph的曲线为折线、点折线、散点图

    场景 Winform中设置ZedGraph的曲线为散点图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102465399 在上 ...

  6. ASP.NET Core使用EPPlus导入导出Excel

    开发过程中,经常会遇到导入导出数据的需求,本篇博客介绍在.NET Core中如何使用EPPlus组件导入导出Excel EPPlus: EPPlus是使用Open Office XML格式(xlsx) ...

  7. Qt Creator清除最近工程历史信息

    Qt Creator清除最近工程历史信息 随着不断打开和关闭qt工程,欢迎->Projects->Recent projects下的历史工程信息越来越多,是该清理一下了,强迫症会追求干净一 ...

  8. 函数使用十一:BAPI_BANK_CREATE

    FI01创建银行主数据: BAPI:BAPI_BANK_CREATE *&----------------------------------------------------------- ...

  9. canal中间件

    简介: 基于数据库增量(模拟MySQL slave的交互协议)日志解析,提供增量数据订阅和消费(客户端与canal建立关系) 安装版本:1.1.0 git 环境需求: jdk1.7以上 mysql开启 ...

  10. Linux文件服务管理之vsftpd

    简介 vsftpd是 "very secure FTP deamon"的缩写,是一个完全免费,开源的ftp服务器软件. 特点 小巧轻快,安全易用,支持虚拟用户.支持带宽限制等功能. ...