详解Java读取本地文件并显示在JSP文件中

 更新时间:2017年08月31日 15:31:06   投稿:lqh  
这篇文章主要介绍了详解Java读取本地文件并显示在JSP文件中的相关资料,这里提供实例帮助大家实现这样的功能,希望能帮助到大家,需要的朋友可以参考下

详解Java读取本地文件并显示在JSP文件中

       当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片。其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相对路径,还可以是网络上的图片路径。在存取少量图片的情况下,采用相对路径存储图片的情况下最方便,也最实用。但是当图片数量过多时,这种方式就显的有些掣肘了。

    当系统的图片数量过多时,如果仍把这些图片当做项目的一部分去发布,势必会大大延长项目的发布时间及更新时间。对于某些对于时限性要求特别高的系统来说,采用相对路径存储图片就是不可取的。特别是系统发布补丁时,只能采用增量的方式去更新系统。如果采用覆盖的方式发布系统,就可能会造成系统图片文件的丢失。

    基于以上种种原因,很多系统会把大量的图片存在服务器的固定目录下,这样搭建集群环境时,就能访问公共的资源,避免对硬盘空间的浪费,但是问题也就在这里出现了。我们发布好的系统访问磁盘上的固定目录下的图片时,出现了没有权限访问的提示。系统为了保证本地安全,不允许直接访问图片。

    咋一看,上面的问题有的不可思议。但仔细想想,系统这么做,也确实有道理的。在服务器上,部署了很多个系统应用。不可能有一个系统的访问权限,就可以随随便便的访问磁盘上的文件。事实上,服务器上的系统是有权限读取其它磁盘路径下的文件,只是没有办法让它显示而已。

    要解决上面的问题,我们可以使用流的方式把图片读取出来,然后再输出显示到HTML页面中。

具体的代码见下面:   

<img name="person.personImg" id="personImg" alt="头像照片" src="${person.personImg}" style="width:160px;height:160px;border:1px solid" /> 
<button id="btnImg" class="btn btn-primary" type="button" title="上传图片" onclick="uploadPersonPic()">上传图片</button> 
 
<script> 
  $(function() { 
    //读取头像照片 
    if($("#oid").val()!=="") 
    { 
      $("#personImg").attr("src","favccxx/person/loadUserPhoto?externalPerson.oid="+$("#oid").val()+"&Time="+(new Date().getTime())); 
      $("#personImg").css("display",""); 
      $("#btnImg").css("display",""); 
    }else{ 
      $("#personImg").css("display","none"); 
      $("#btnImg").css("display","none");      
    } 
  } 
</script> 

Java代码:

@Action(value = "loadUserPhoto", results = { @Result(name = "success", type = "stream", params = { 
      "contentType", "image/jpeg", "inputName", "imageStream" }) }) 
  public String getImage() { 
    if (person.getOid() != null) { 
      // 设置图片 
      try { 
        Person person = personService.findOne("oid", externalPerson.getOid()); 
        FileInputStream is = new FileInputStream(person.getPersonImg()); 
        imageStream = new BufferedInputStream(new FileInputStream(person.getPersonImg())); 
      } catch (Exception e) { 
      } 
    } 
    return SUCCESS; 
  } 

以上就是java 读取本地文件并显示的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 如何开启控制台输出mybatis执行的sql日志问题

    如何开启控制台输出mybatis执行的sql日志问题

    这篇文章主要介绍了如何开启控制台输出mybatis执行的sql日志问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot整合支付宝APP支付

    SpringBoot整合支付宝APP支付

    这篇文章主要为大家详细介绍了SpringBoot整合支付宝APP支付,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Java 从互联网上爬邮箱代码示例

    Java 从互联网上爬邮箱代码示例

    这篇文章介绍了Java 从互联网上爬邮箱的有关内容,主要是一个代码示例,小编觉得挺不错的,这里给大家分享下,需要的朋友可以了解。
    2017-10-10
  • java多线程Thread的实现方法代码详解

    java多线程Thread的实现方法代码详解

    这篇文章主要介绍了java多线程Thread的实现方法代码详解,涉及start(),run(),stop(),interrupt(),isInterrupted(),join()和join(long millis)等方法的介绍,具有一定借鉴价值,需要的朋友可以了解下。
    2017-11-11
  • java反射简单实例

    java反射简单实例

    这篇文章主要介绍了java反射机制,以一个简单实例形式分析了Java反射的原理与实现技巧,需要的朋友可以参考下
    2015-02-02
  • Mybatis Plus代码生成器(时间管理大师)

    Mybatis Plus代码生成器(时间管理大师)

    这篇文章主要介绍了Mybatis Plus代码生成器(时间管理大师)的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot中多个实现的接口正确注入的六种方式

    SpringBoot中多个实现的接口正确注入的六种方式

    在SpringBoot中,正确注入多个接口实现包括使用@Autowired和@Qualifier、@Resource注解、构造方法注入、@Primary注解、Java配置类以及将所有实现注入到List或Map中,感兴趣的可以了解一下
    2024-10-10
  • IDEA如何配置本地tomcat启动项目

    IDEA如何配置本地tomcat启动项目

    这篇文章主要介绍了IDEA如何配置本地tomcat启动项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring Batch批处理框架操作指南

    Spring Batch批处理框架操作指南

    Spring Batch 是 Spring 提供的一个数据处理框架。企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作,这篇文章主要介绍了Spring Batch批处理框架操作指南,需要的朋友可以参考下
    2022-07-07
  • spring声明式事务@Transactional开发常犯的几个错误及最新解决方案

    spring声明式事务@Transactional开发常犯的几个错误及最新解决方案

    使用声明式事务@Transactional进行事务一致性的管理,在开发过程中,发现很多开发同学都用错了spring声明式事务@Transactional或使用不规范,导致出现各种事务问题,这篇文章主要介绍了spring声明式事务@Transactional开发常犯的几个错误及解决办法,需要的朋友可以参考下
    2024-02-02

最新评论