利用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入门教程(12) js对象化编程
Jan 31 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
利用angular、react和vue实现相同的面试题组件
Feb 19 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
微信小程序实现的picker多级联动功能示例
May 23 Javascript
vue实现的上拉加载更多数据/分页功能示例
May 25 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
详解如何在Javascript和Sass之间共享变量
Nov 13 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 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
php分页思路以及在ZF中的使用
2012/05/30 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
javascript 自定义回调函数示例代码
2014/09/26 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
JSX在render函数中的应用详解
2019/09/04 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
python快速排序代码实例
2013/11/21 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
详解在Python中处理异常的教程
2015/05/24 Python
Python中异常重试的解决方案详解
2017/05/05 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
基于Python fminunc 的替代方法
2020/02/29 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
高中生个性发展自我评价
2015/03/09 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
原生JS实现飞机大战小游戏
2021/06/09 Javascript