利用ajaxfileupload插件实现文件上传无刷新的具体方法


Posted in Javascript onJune 08, 2013

 做项目的时候遇到了这样一个问题,如果用普通的ASP.NET FileUpload控件实现文件上传,那么页面会刷新,那么页面上用JS拼出的元素就会消失,为了上传文件,又不能刷新页面,ajaxfileupload插件是一个很好的选择(插件下载地址://img.jbzj.com/file_images/article/201306/js/ajaxfileupload.js)

ajaxfileupload是jQuery的一个插件,使用这个插件同时要引用jQuery.js文件

直接上代码吧

JS代码

[javascript]

//执行AJAX上传文件  
$.ajaxFileUpload({ 
url: '/Web/Teacher/ImportAchievements.ashx', 
secureuri: false, 
fileElementId: 'fulAchievements', 
dataType: 'json', 
success: function (data, status) { 
    alert(data[0]); 
} 
}); 
 //执行AJAX上传文件
 $.ajaxFileUpload({
 url: '/Web/Teacher/ImportAchievements.ashx',
 secureuri: false,
 fileElementId: 'fulAchievements',
 dataType: 'json',
 success: function (data, status) {
  alert(data[0]);
 }
 });

说明:

1.这个方法很像大家熟知的$.ajax方法

2.参数说明

url:AJAX的后台代码文件,要接收前台传来的文件数据

secureuri:是否对上传的文件加密

fileElementId:HTML中<input type="file"/>上传控件的Id值,这里需要注意的是,后台代码是通过name-value的形式接收数据的,所以后台代码是通过name来接收数据的,而不是Id(根本原因是,这个方法会自动生成一个表单,将表单提交给后台代码处理)。

dataType:数据类型,一般是‘json'

success:上传成功后执行的回调函数

ASP.NET一般处理程序中的代码

[csharp]

public void ProcessRequest (HttpContext context) { 
    context.Response.ContentType = "text/html";//这里很关键,虽然前台数据类型是json,但这里一定要写html  
    //获取前台传来的文件  
    HttpFileCollection files = HttpContext.Current.Request.Files; 
    //将文件保存在网站目录中  
    files[0].SaveAs(context.Server.MapPath("/Web/uploadFiles/Achievements.xls")); 
    //返回用json数据格式表示的提示  
    string result = "[" + "\"" + "成绩导入成功" + "\"" + "]"; 
    context.Response.Write(result); } 

public void ProcessRequest (HttpContext context) {
 context.Response.ContentType = "text/html";//这里很关键,虽然前台数据类型是json,但这里一定要写html
 //获取前台传来的文件
 HttpFileCollection files = HttpContext.Current.Request.Files;
 //将文件保存在网站目录中
 files[0].SaveAs(context.Server.MapPath("/Web/uploadFiles/Achievements.xls"));
 //返回用json数据格式表示的提示
 string result = "[" + "\"" + "成绩导入成功" + "\"" + "]";
 context.Response.Write(result);
}

这样就实现了AJAX上传文件,页面不会刷新,有需要的试试吧。
Javascript 相关文章推荐
javascript new一个对象的实质
Jan 07 Javascript
JavaScript 格式字符串的应用
Mar 29 Javascript
jquery如何实现锚点链接之间的平滑滚动
Dec 02 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
JS实现简洁、全兼容的拖动层实例
May 13 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
Jan 14 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
JS实现简易图片自动轮播
Oct 16 Javascript
JavaScript自动设置IFrame高度的小例子
Jun 08 #Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 #Javascript
JavaScript String.replace函数参数实例说明
Jun 06 #Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 #Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
Jun 06 #Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
Jun 06 #Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 #Javascript
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
python连接oracle数据库实例
2014/10/17 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
python的re正则表达式实例代码
2018/01/24 Python
Python微信公众号开发平台
2018/01/25 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
pandas删除指定行详解
2019/04/04 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
应届毕业生的个人自我鉴定
2013/10/24 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
团队拓展活动总结
2014/08/27 职场文书
信访维稳承诺书
2015/05/04 职场文书
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js