无刷新上传文件并返回自定义值
作者:bea
今天开发过程中遇到了这样一个问题:需要将Excel上传至服务器进行解析,但是在文档不合适的情况下希望可以不刷新页面提示用户文档不合适。冥思苦想了半天,在网上找了不少资料最终试验成功,在此分享下处理方法: 首先先说下处理思路:在页面上添加一个隐藏的iframe,设置form表单的target属性设置为iframe的id,这样form提交时会将excel文件以文件流的形式传到后台,在后台接收后可进行自定义操作,之后返回的信息将显示在iframe中而不进行跳转,iframe之前设置
今天开发过程中遇到了这样一个问题:需要将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的文件流),接收后即可进行自定义操作。
有用 | 无用
首先先说下处理思路:在页面上添加一个隐藏的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中Date.toSource()方法的使用教程
- ECMAScript6中Set/WeakSet详解
- JavaScript中的toLocaleDateString()方法使用简介
- ECMAScript6块级作用域及新变量声明(let)
- JavaScript中的toDateString()方法使用详解
- ECMAScript6新增值比较函数Object.is
- ECMAScript6函数剩余参数(Rest Parameters)
- ECMAScript6函数默认参数
- 在JavaScript中操作时间之setYear()方法的使用
- 简介JavaScript中setUTCSeconds()方法的使用
- JS中产生标识符方式的演变
- JS中处理时间之setUTCMinutes()方法的使用
- JavaScript中setUTCMilliseconds()方法的使用详解
- JavaScript中setUTCFullYear()方法的使用简介
- 禁止按回车键提交表单的方法
- JavaScript中的setUTCDate()方法使用详解
- 简介JavaScript中的setTime()方法的使用
- JS/Jquery判断对象为空的方法
- 详解JavaScript中setSeconds()方法的使用