- 浏览: 248707 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
青橙--杰:
我是沙发,第一次做,不见怪
轻松实现图片上传并回显 -
青橙--杰:
...
轻松实现图片上传并回显 -
juedaihuai:
[flash=200,200][/flash]
Spring 3.0 maven的pom配置 -
107x:
不错,谢谢!
Spring 3.0 maven的pom配置 -
narutolby:
iccboy 写道请问博主,这个和commons-httpcl ...
httpclient maven
图片上传及文件上传,前端html实现文件上传和普通的向后台传参数不同,必须用到form表单,同时form标签必须加上enctype="multipart/form-data"属性,method必须为post,表单中的input的type为file,这样前端上传文件的工作就完成了,这里后台文件的存储不做详细的介绍,因为用到的是struts2,文件上传的功能已经封装好了,但是还是需要注意几点,action中类型为File的属性名必须和input标签的name相同,同时action中必须有contentType和fileName属性,这里不是本文讲的重点就不做详细介绍了。
大家知道,form表单的post请求是同步请求,如果没有指定target属性,默认情况下提交后会刷新页面,想要做到提交请求后不页面不动即能回显上传的图片,这就需要一些处理,这里我用到了隐藏的iframe,将form表单的target指向iframe的名字,这样form表单提交后返回的结果将在iframe中显示。
关于iframe中显示的内容是图片回显的关键,以下是返回的内容:
可以看到返回的内容很简单,就是一段javascript代码,因为当form表单提交后,我做了url重定向,并把图片的存储路径作为重定向url的参数,这段javascript代码首先从iframe的location中获得图片的存储路径,然后调用父窗口的showPic函数,并将图片存储路径传入函数,showPic函数是写在父床口中的,为什么可以这么做,因为子窗口可以调用父窗口的函数,但是反过来父窗口调用子窗口的函数是不被允许的。showPic函数如下:
它的作用就是将img标签的src指向传过来的图片路径,这时候浏览器就回去加载这个图片,这样就轻松的实现了图片上传并迅速回显的功能,我附上了实现这个功能的整个工程,是一个eclipse的maven工程,需要通过本机maven命令下载依赖包。
大家知道,form表单的post请求是同步请求,如果没有指定target属性,默认情况下提交后会刷新页面,想要做到提交请求后不页面不动即能回显上传的图片,这就需要一些处理,这里我用到了隐藏的iframe,将form表单的target指向iframe的名字,这样form表单提交后返回的结果将在iframe中显示。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Upload Image Demo</title> <script type="text/javascript" src="js\jquery-1.7.1.min.js"></script> <script type="text/javascript"> function upload(){ $('form').submit(); $('img').attr('src','img/vote_img_loading.png') } $(document).ready(function(){ $(':input[type=file]').change(upload); }); function showPic(path){ $('img').attr('src','file/'+path).next('span').css('visibility','visible'); } </script> <style type="text/css"> .pic { position: relative; width: 100px; height: 100px; float: left; display: inline; margin: 0 5px 0 0; cursor: pointer; overflow: hidden; } .pic span { position: relative; color: white; margin: -20px 0 0; display: block; height: 20px; width: 100px; text-align: center; overflow: hidden; line-height: 20px; background: url(img/template_list_titlebg.png) ; } .pic form { position: absolute; width: 100px; height: 100px; overflow: hidden; z-index: 10; margin: -100px 0 0; } .pic input { font-size: 100px; cursor: pointer; -moz-opacity: 0; filter: alpha(opacity = 0); opacity: 0; background: none; border: none; margin: -10px 0 0 -650px 9; } </style> </head> <body> <iframe style="display:none" name="if"> </iframe> <div class="pic"> <img height="100" width="100" src="img/update_pic.png"><span style="visibility: hidden">重新上传</span> <form enctype="multipart/form-data" method="POST" action="upload.action" target="if"> <input type="file" name="upload"/> </form> </div> </body> </html>
关于iframe中显示的内容是图片回显的关键,以下是返回的内容:
<html> <head> </head> <body> <script type="text/javascript"> var pid = window.location.search.split('=')[1]; top.window.showPic(pid); </script> </body> </html>
可以看到返回的内容很简单,就是一段javascript代码,因为当form表单提交后,我做了url重定向,并把图片的存储路径作为重定向url的参数,这段javascript代码首先从iframe的location中获得图片的存储路径,然后调用父窗口的showPic函数,并将图片存储路径传入函数,showPic函数是写在父床口中的,为什么可以这么做,因为子窗口可以调用父窗口的函数,但是反过来父窗口调用子窗口的函数是不被允许的。showPic函数如下:
function showPic(path){ $('img').attr('src','file/'+path).next('span').css('visibility','visible'); }
它的作用就是将img标签的src指向传过来的图片路径,这时候浏览器就回去加载这个图片,这样就轻松的实现了图片上传并迅速回显的功能,我附上了实现这个功能的整个工程,是一个eclipse的maven工程,需要通过本机maven命令下载依赖包。
- Image.zip (45.7 KB)
- 下载次数: 357
发表评论
-
【转载】java实现动态切换上网IP (ADSL拨号上网
2013-11-15 14:08 1061转载:http://sesame.iteye.com/bl ... -
java gc过程
2012-07-09 10:30 1116package SRC; /*如果一个对象在根搜索后发现 ... -
实现html进入编辑状态,在线编辑器中用到的(html的designMode)
2012-07-01 16:17 1642<head> <script ty ... -
HTML5 API——无刷新更新地址 history.pushState/replaceState 方法
2012-05-31 14:19 1524[size=large]尽管是上面讲到的《JavaScript ... -
java gc算法
2012-05-05 11:15 810http://developer.51cto.com/art/ ... -
document.compatMode介绍
2012-05-01 09:31 999用法:p = object.compatMode Prope ... -
雅虎14条前端优化原则
2012-04-21 20:51 985有兴趣的同学可以装个 Firebug 下的 Yslow ,测试 ... -
Pinyin4j解决用拼音对汉字的搜索
2012-04-16 15:03 16241. 简单介绍 有时 ... -
前端性能优化
2012-04-10 13:38 7560一、 前端性能黄金法则 ... -
drag-and-drop实现浏览器的图片预览
2012-04-04 18:00 2382今天刚试过chrome的drag and drop A ... -
data类型的Url格式
2012-04-03 21:45 9052今天在浏览网站时发现了一个很奇妙的实现,于是就看了下页面 ... -
8个能够有效帮助你提高jQuery代码性能的技巧
2012-04-02 20:50 1023jQuery越来越流行了,大家可能也会发现,在浏览网站过程中, ... -
前端MVC
2012-04-02 19:04 0做过web开发的程序员基本上都听过MVC模式,像Str ... -
三种方法实现js跨域访问
2012-03-26 20:46 49114javascript跨域访问是web开发者经常遇到的问题 ... -
jquery ajaxStart和ajaxStop方法
2012-03-21 13:30 1978jquery提供了一些自定义全局函数,能够为各种与ajax相关 ... -
java实现文件的下载并解决文件名乱码问题
2012-03-05 14:22 1839[size=medium]response.setConten ... -
模仿淘宝首页淘工头像的的自由摇摆
2012-03-02 16:36 1246基于css3的transform实现淘宝首页淘工图像的自由摇摆 ... -
css3实现转动
2012-03-01 14:22 5834转 http://www.douban.com/note/17 ... -
关于jquery 的ajax返回的deferred对象
2012-02-29 22:00 790http://www.ruanyifeng.com/blog/ ... -
访问jsp页面Struts标签报错问题!
2012-02-20 09:56 1339在学习Struts2标签测试的过程中,发现不通过act ...
相关推荐
图片上传插件,可多文件上传和回显,可删除已上传图片,可进行拖拽上传。 springmvc接收传向后台的值方法 @RequestMapping("/admin/addImage.do") public ModelAndView handleRequest(HttpServletRequest request,...
SpringBoot之图片上传与回显的小Demo,非常适合初学者上手。本人博客也写了关于图片上传与回显的一些细节,大家可以参考。
基于SSM框架的图片(文件)上传并显示到页面,附有数据库
支持多图片回显 与多个文件上传 支持图片删除与回显 原生jquery file上传
springboot实现上传图片和预览
手机及PC端web多图片上传及回显,可根据实际需求进行代码调整,提供基本的开发思路。 手机及PC端web多图片上传及回显,可根据实际需求进行代码调整,提供基本的开发思路。
今天小编就为大家分享一篇解决layui富文本编辑器图片上传无法回显的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
用spring,springmvc,mybatis实现图片的上传和回显,图片地址在tomcat里面设置
SSM框架上传图片(单个图片文件的上传和回显(多个回显只需要修改数据类型和jsp代码))
js实现form表单自动回显功能
ajax+ashx完整实现上传图片示例,可回显图片,直接可用,无需调试,包含ashx文件
vue-element-admin加入多图片上传并回显 vue使用element ui多图片上传加修改回显示例使用模态框
主要介绍了Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
java页面选择图片即上传,并且在页面回显
ssm上传图片以及回显图片源代码 自己亲手写的 供参考哦
此项目为SSM项目,实现了跨服务器上传图片,并用Ajax技术实现上传图片之后,在页面上立即回显的功能。实现了对商品的修改、查询和删除功能。 图片上传之后保存在ssmImage19项目的upload文件夹中。(上传的资源中包括...
图片转base64保存到数据库 , 并回显到浏览器
图片文件上传回显jQuery插件
JS图片持续上传,无刷新回显,浮层左右箭头,可以自动排序图片显示顺序的特效