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


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 相关文章推荐
Mac OS X 系统下安装和部署Egret引擎开发环境
Sep 03 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
vue-router跳转页面的方法
Feb 09 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
angular2中Http请求原理与用法详解
Jan 11 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
vue路由的配置和页面切换详解
Sep 09 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 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
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
javascript自定义的addClass()方法
2014/05/28 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
Python面向对象之类和对象实例详解
2018/12/10 Python
Django多数据库的实现过程详解
2019/08/01 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
使用python turtle画高达
2020/01/19 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
如何用python免费看美剧
2020/08/11 Python
python 高阶函数简单介绍
2021/02/19 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
新疆民族团结演讲稿
2014/08/27 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
研究生简历自我评
2015/03/11 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
暂住证明怎么写
2015/06/19 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
Python道路车道线检测的实现
2021/06/27 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫