用iframe实现不刷新整个页面上传图片的实例


Posted in Javascript onNovember 18, 2016

经常用到上传图片即时预览的功能,实现方式很多,用flash+js实现的比较多,今天遇到同事不想用flash之类也不想用网上的插件,那么我给了他一种解决办法:

思路:

1. 页面上传图片的部分放到一个iframe中,iframe设置无边框无滚动条,和所嵌入的页面风格一致,根据需要设置固定大小

2. 在iframe中提交上传图片的表单,提交后再次返回原页面(iframe所指向的页面)并从服务器带回刚上传的图片地址,调用父页面的js代码加载图片

3. 如果用到要进度条等效果,就在表单提交后,在servlet一端输出进度条,然后一直发送调用js脚本,及时改变页面内容。其他功能诸如取消等功能可以参考推送

下面的代码实现了基本的文件上传:

index.jsp页面里嵌入一个文件上传的页面 _uploadpic.jsp

index.jsp:

...

 <script type="text/javascript">
 /*
param imgPath:img path of uploaded

this function will show the uploaded img in div(id=show_img_div)
 */
 function showUploadImg(imgPath){
if(imgPath=="")return;
document.getElementById("show_img_div").innerHTML="<img src='"+imgPath+"'/>";
}
 </script>
 <body>
 <iframe scrolling="no"width="300" height="100" src="_uploadpic.jsp"></iframe>
<!-- use to show img(uploaded) -->
<div id="show_img_div"></div>


...

_uploadpic.jsp:

...

<body onload="javascript:window.parent.showUploadImg('${img}');"><!--'${img}' request或者session中的图片地址(从服务器传递来的) -->
<form method="post" id="upload_form" action="${pageContext.request.contextPath }/servlet/IframeTestImageServlet" enctype="multipart/form-data">
  <input type="file" name="pic"/><br/><input type="submit" value="upload"/>
  </form> 
</body>


...

servlet:(处理图片上传的servlet)

//处理上传的图片 

.... 代码多 此处略去

   //把刚上传的图片在服务器中的地址返回到客户端

request.setAttribute("img",request.getContextPath()+"/img/mm.jpg");// '/img/mm.jpg'表示刚上传图片在服务器中的地址
request.getRequestDispatcher("/_uploadpic.jsp").forward(request, response);

以上这篇用iframe实现不刷新整个页面上传图片的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Flash+XML滚动新闻代码 无图片 附源码下载
Nov 22 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
新版小程序登录授权的方法
Dec 12 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
js实现网页版贪吃蛇游戏
Feb 22 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
Form表单按回车自动提交表单的实现方法
Nov 18 #Javascript
form+iframe解决跨域上传文件的方法
Nov 18 #Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 #Javascript
微信小程序开发实战教程之手势解锁
Nov 18 #Javascript
JavaScript之WebSocket技术详解
Nov 18 #Javascript
仿iframe效果Aajx文件上传实例
Nov 18 #Javascript
JavaScript之cookie技术详解
Nov 18 #Javascript
You might like
swfupload 多文件上传实现代码
2008/08/27 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
python学习 流程控制语句详解
2016/06/01 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
python输出数学符号实例
2020/05/11 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
会计演讲稿范文
2014/05/23 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
python绘制箱型图
2021/04/27 Python
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
Python竟然能剪辑视频
2021/05/25 Python
深入详解JS函数的柯里化
2021/06/09 Javascript