用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 相关文章推荐
JQuery 简便实现页面元素数据验证功能
Mar 24 Javascript
用js查找法实现当前栏目的高亮显示的代码
Nov 24 Javascript
jquery图片放大镜功能的实例代码
Mar 26 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
js轮播图代码分享
Jul 14 Javascript
简单实现js无缝滚动效果
Feb 05 Javascript
JavaScript实现计数器基础方法
Oct 10 Javascript
vue router 源码概览案例分析
Oct 09 Javascript
基于Koa2写个脚手架模拟接口服务的方法
Nov 27 Javascript
js模拟实现烟花特效
Mar 10 Javascript
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
多文件上传的例子
2006/10/09 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
Python类装饰器实现方法详解
2018/12/21 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
详解Python 函数参数的拆解
2020/09/02 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
办公室务虚会发言材料
2014/10/20 职场文书
慰问信范文
2015/02/14 职场文书
求职简历自我评价2015
2015/03/10 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
JS实现扫雷项目总结
2021/05/19 Javascript
Java集成swagger文档组件
2021/06/28 Java/Android
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技