利用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 相关文章推荐
DOM相关内容速查手册
Feb 07 Javascript
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
js 限制input只能输入数字、字母和汉字等等
Dec 18 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
JQuery操作元素的css样式
Mar 09 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
Feb 26 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
详解react阻止无效重渲染的多种方式
Dec 11 Javascript
详解在Node.js中发起HTTP请求的5种方法
Jan 10 Javascript
d3.js实现图形缩放平移
Dec 19 Javascript
使用Vue实现简单计算器
Feb 25 Javascript
一百多行代码实现react拖拽hooks
Mar 23 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
Symfony页面的基本创建实例详解
2015/01/26 PHP
laravel学习教程之存取器
2016/07/30 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
菜单效果
2006/10/14 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JS delegate与live浅析
2013/12/21 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python原始字符串(raw strings)用法实例
2014/10/13 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
Django的Modelforms用法简介
2019/07/27 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
银行先进个人总结
2015/02/15 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
培训简讯范文
2015/07/20 职场文书
作文之亲情600字
2019/09/23 职场文书
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL