用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 相关文章推荐
js创建子窗口并且回传值示例代码
Jul 02 Javascript
JavaScript 上万关键字瞬间匹配实现代码
Jul 07 Javascript
Node.js中的process.nextTick使用实例
Jun 25 Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 Javascript
javascript实现网站加入收藏功能
Dec 16 Javascript
总结Node.js中的一些错误类型
Aug 15 Javascript
BootStrap table使用方法分析
Nov 08 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
jquery获取select,option所有的value和text的实例
Mar 06 Javascript
node crawler如何添加promise支持
Feb 01 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
一段php加密解密的代码
2007/07/16 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
轻松掌握python设计模式之策略模式
2016/11/18 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Django实现分页功能
2018/07/02 Python
Python正则表达式指南 推荐
2018/10/09 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python getopt模块使用实例解析
2019/12/18 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
工作交流会欢迎词
2014/01/12 职场文书
英语国培研修感言
2014/02/13 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
三八节祝酒词
2015/08/11 职场文书
2015中秋祝酒词
2015/08/12 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书