无刷新上传文件并返回自定义值


Posted in Javascript onJune 11, 2015

今天开发过程中遇到了这样一个问题:需要将Excel上传至服务器进行解析,但是在文档不合适的情况下希望可以不刷新页面提示用户文档不合适。冥思苦想了半天,在网上找了不少资料最终试验成功,在此分享下处理方法:

首先先说下处理思路:在页面上添加一个隐藏的iframe,设置form表单的target属性设置为iframe的id,这样form提交时会将excel文件以文件流的形式传到后台,在后台接收后可进行自定义操作,之后返回的信息将显示在iframe中而不进行跳转,iframe之前设置为隐藏,所以页面不会有变化,然后我们需要监听iframe内容的变化,然后将内容传入主窗口中的JS方法进行下一步的自定义处理。

页面代码如下:

<form id="input" action="importExcel.jhtml" method="post" enctype="multipart/form-data" target="hiddenIFrame">
<input id="excelFile" name="file" type="file" />

<input type="submit" class="button" value="导入excel"/>
</form>
<iframe id='hiddenIFrame' name='hiddenIFrame' style="display:none;"></iframe>

JS代码如下(需引入jqeury):

$(function(){
  $("#hiddenIFrame").load(function(){
    var wnd = this.contentWindow;
    var str = $(wnd.document.body).html();
    callback(str);
  });
})
 
function callback(info){
  alert(info);
}

 后台代码就不过多介绍了与传统提交一样,后台会根据input组件的name值获取到一个同名的文件流(例如上面页面代码中input组件的name是file,那么后台接收到的是一个名字叫file的文件流),接收后即可进行自定义操作。

Javascript 相关文章推荐
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 #Javascript
JS制作手机端自适应缩放显示
Jun 11 #Javascript
实现placeholder效果的方案汇总
Jun 11 #Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 #Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 #Javascript
jQuery使用drag效果实现自由拖拽div
Jun 11 #Javascript
javascript 常见功能汇总
Jun 11 #Javascript
You might like
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php读取本地json文件的实例
2018/03/07 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
js密码强度检测
2016/01/07 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
JS常见构造模式实例对比分析
2018/08/27 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
python中requests小技巧
2017/05/10 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
Python pip 常用命令汇总
2020/10/19 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
会计系个人求职信范文分享
2013/12/20 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
文明餐桌活动方案
2014/02/11 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
药品营销策划方案
2014/06/15 职场文书
旅游活动总结
2014/08/27 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL