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


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 22 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
利用JS轻松实现获取表单数据
Dec 06 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
浅谈js闭包理解
Mar 28 Javascript
React中获取数据的3种方法及优缺点
Feb 18 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
python保存网页图片到本地的方法
2018/07/24 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
自我评价的正确写法
2013/09/19 职场文书
市场营销专业个人自荐信格式
2013/09/21 职场文书
毕业生找工作推荐信
2013/11/21 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
党小组鉴定意见
2015/06/02 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电