java访问本地文件_详解Java读取本地文件并显示在JSP文件中
详解Java读取本地文件并显示在JSP文件中
当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片。其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相对路径,还可以是网络上的图片路径。在存取少量图片的情况下,采用相对路径存储图片的情况下最方便,也最实用。但是当图片数量过多时,这种方式就显的有些掣肘了。
当系统的图片数量过多时,如果仍把这些图片当做项目的一部分去发布,势必会大大延长项目的发布时间及更新时间。对于某些对于时限性要求特别高的系统来说,采用相对路径存储图片就是不可取的。特别是系统发布补丁时,只能采用增量的方式去更新系统。如果采用覆盖的方式发布系统,就可能会造成系统图片文件的丢失。
基于以上种种原因,很多系统会把大量的图片存在服务器的固定目录下,这样搭建集群环境时,就能访问公共的资源,避免对硬盘空间的浪费,但是问题也就在这里出现了。我们发布好的系统访问磁盘上的固定目录下的图片时,出现了没有权限访问的提示。系统为了保证本地安全,不允许直接访问图片。
咋一看,上面的问题有的不可思议。但仔细想想,系统这么做,也确实有道理的。在服务器上,部署了很多个系统应用。不可能有一个系统的访问权限,就可以随随便便的访问磁盘上的文件。事实上,服务器上的系统是有权限读取其它磁盘路径下的文件,只是没有办法让它显示而已。
要解决上面的问题,我们可以使用流的方式把图片读取出来,然后再输出显示到HTML页面中。
具体的代码见下面:
上传图片
$(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");
}
}
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 读取本地文件并显示的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
java访问本地文件_详解Java读取本地文件并显示在JSP文件中相关推荐
- java 配置文件的路径_详解java配置文件的路径问题
详解java配置文件的路径问题 详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设 ...
- java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题
先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...
- java 线程一直运行状态_详解JAVA 线程-线程的状态有哪些?它是如何工作的?
线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在. 一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源.更加轻量化,也因 ...
- java的注解方式_详解Java注解的实现与使用方法
详解Java注解的实现与使用方法 Java注解是java5版本发布的,其作用就是节省配置文件,增强代码可读性.在如今各种框架及开发中非常常见,特此说明一下. 如何创建一个注解 每一个自定义的注解都由四 ...
- java集合for循环_详解Java中list,set,map的遍历与增强for循环
详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for ...
- java 配置文件配置路径_详解java配置文件的路径问题
详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设置. 那么我们需要读取配置文件, ...
- java使用集合存储过程_详解java调用存储过程并封装成map
详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...
- java注解 源码_详解Java注解教程及自定义注解
详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06 作者:佚名 我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...
最新文章
- html5 graphics with svg css3,HTML5 GRAPHICS WITH SVG AND CSS3
- 「机器学习速成」数据预处理,特征工程,良好特征的特点
- Fast Flux技术——本质就是跳板,控制多个机器,同一域名指向极多的IP(TTL修改为0),以逃避追踪...
- Python爬虫(十)_XPath与lxml类库
- mknod创建设备(加载新的设备驱动时候,通常会用到此命令)
- 每天学一点儿shell:vi和vim命令使用
- 【数据分析学习】线性降维方法
- DB排行榜更新,.NET Core+MySQL成主流!
- bson json c语言,对比平台--JSON和BSON之间的区别
- 同步与异步阻塞与非阻塞
- 玩转 SpringBoot 2 快速整合 Filter
- 微软给中国学生的特权:免费使用微软软件
- python 移动文件 覆盖_python 剪切移动文件的实现代码
- 中华之剑,禁毒纪录片,已转码支持流媒体播放,欢迎下载、欢迎传播
- php 蓝奏网盘上传文件,蓝奏云盘客户端v2.6 支持文件夹和大文件上传了
- poi操作ppt图表史上最完整示例演示
- Python实现的某市近几十年降雨量影响因素分析
- SCAU 计算智能 18118 勇者斗恶龙
- 桌面Linux下分区建议方案
- 计算机配件及其参数,型号后缀看不懂 电脑核心硬件参数解读
热门文章
- HDFS写入HBase
- 《长安十二时辰》利用大数据破案?
- 传感器的定义、构成、分类
- java redis监听问题_springboot+redis过期事件监听实现过程解析
- 美赛整理之Matlab的工程数学计算学习笔记(高等数学)
- python报表自动化系列 - 计算某年某个月的天数
- react 把前后台的axios请求放在一起_可靠React组件设计的7个准则之SRP
- vue 秒转换为时分秒_三年级数学上册时分秒换算口诀(附重点习题)
- 最短路计数(松弛操作处理)
- windows平台oracle自动job,oracle删除oem中自动备份job