直接上代码吧

前台

先引用 ajaxfileupload.js

<script src="~/Scripts/ajaxfileupload.js"></script>
  <input type="file" id="test_file" name="test_file" style="display:none" />

 <a href="#" id="test_ImportData">导入数据</a>

这么做是为了不让那个丑的要死的file 控件出来 直接用一个按钮触发 隐藏掉原来的file 控件

 <script type="text/javascript">
(function () {
var changefile = function () {
var ajaxDialog = ShowWaitMessageDialog("");//遮罩层
$.ajaxFileUpload({
url: '/Home/Import',//需要链接到服务器地址
secureuri: false,
fileElementId: 'test_file',//文件选择框的id属性
dataType: 'text', //服务器返回的格式,可以是json 但是不兼容IE 故改为Text
success: function (data, status) {
//返回之后的操作
//...
HideWaitMessageDialog(ajaxDialog);//关闭提交时的弹层提示
},
complete: function (xmlHttpRequest) {
//解决点击一次file失效
$("#test_file").replaceWith('<input type="file" id="test_file" name="test_file" style="display:none"/>');
$("#test_file").change(function () {
changefile();
});
},
error: function (data, status, e) {
HideWaitMessageDialog(ajaxDialog);//关闭提交时的弹层提示
alert(e);
}
});
};
$("#test_ImportData").click(function () {
$("#test_file").click();
});
$("#test_file").change(function () {
changefile();
});
}());
</script>

然后是后台接收,接收完后我是先把他存到本地,然后取出来

 public string Import()
{
try
{
HttpFileCollection httpFileCollection = System.Web.HttpContext.Current.Request.Files;
string path = "";
DataTable dt = null;
if (httpFileCollection.Count > )
{
string fileName = httpFileCollection[].FileName;
if (fileName.IndexOf("\\") > -)
{
//IE的情况
fileName = fileName.Substring(fileName.LastIndexOf("\\") + );
}
path = "/UploadFiles/" + fileName;
string PhysicalPath = Server.MapPath(path);
httpFileCollection[].SaveAs(PhysicalPath);//存到项目文件中,
dt = ExcelUtil.ReadFromCSV(PhysicalPath, true);// 通过路径读取文件内容存到datatable中 }
return JsonUtil.SerializeObject(dt);
}
catch (Exception ex)
{
throw ex;
}
}

MVC ajaxfileupload 实现无刷新导入或上传功能的更多相关文章

  1. jquery .net 无刷新多文件上传

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示 ...

  2. iframe无刷新跨域上传文件并获取返回值

    通常我们会有一个统一的上传接口,这个接口会被其他的服务调用.如果出现不同域,还需要无刷新上传文件,并且获取返回值,这就有点麻烦了.比如,新浪微博启用了新域名www.weibo.com,但接口还是使用原 ...

  3. Ajax 使用formdata 实现 无刷新表单上传

    FormData对象的作用就类似于这里的serialize()方法,不过FormData是浏览器原生的,且支持二进制文件 1.这里实现一个无刷新上传图片,成功后页面显示 点击button 触发隐藏的 ...

  4. SWFUpload无刷新文件批量上传

    一.首先将SWFUpload所有文件加入项目中,如图

  5. iframe无刷新跨域上传文件并获得返回值

    原文:http://geeksun.iteye.com/blog/1070607 需求:从S平台上传文件到R平台,上传成功后R平台返回给S平台一个值,S平台是在一个页面弹出的浮窗里上传文件,所以不能用 ...

  6. 基于THINKPHP+layui+Ajax无刷新实现图片上传预览

    <fieldset class="layui-elem-field" style="width:500px;margin:50px 0 0 300px;" ...

  7. MVC.Net5:添加Tinymce的图片上传功能

    Tinymce是目前几个主流的Web文本编辑器之一,不过它的图片上传功能是要收费的,而其它几个免费的上传图片的插件支持的都是PHP.那么就只能自己动手写一个了(源代码下载). 准备工作如下:1.   ...

  8. spring mvc 3.0 实现文件上传功能

    http://club.jledu.gov.cn/?uid-5282-action-viewspace-itemid-188672 —————————————————————————————————— ...

  9. ASP.NET MVC使用jQuery无刷新上传

    昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...

随机推荐

  1. DEVOPS技术实践_19:Pipeline的多参数json调用

    在上一篇学习了把参数写进Json文件,然后通过去Json文件,调用参数的方法 1. 三元运算符介绍 调用的方法是通过一个三元运算符实现的 gender = prop.GENDER? prop.GEND ...

  2. 三句话说清楚ssh端口转发

    看了下自己以前的笔记发现也没有完全搞清楚, 网上好多文章都是抄来抄去,远程端口转发全都是拿127.0.0.1举例 总结了下,三句话就可以讲清楚了   1 ssh本地端口转发是 把ssh服务器可以访问到 ...

  3. 20191114-2 Beta阶段事后诸葛亮会议

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10005 组长组“多彩夕阳”项目beta阶段诸葛亮会议 设想和目标 1.我 ...

  4. 洛谷$P3645\ [APIO2015]$雅加达的摩天楼 最短路

    正解:最短路 解题报告: 传送门$QwQ$ 考虑暴力连边,发现最多有$n^2$条边.于是考虑分块 对于长度$p_i$小于等于$\sqrt(n)$的边,建立子图$d=p_i$.说下关于子图$d$的定义? ...

  5. $SP$3267 $DQUERY - D-query$ 主席树

    正解:主席树 解题报告: 传送门! 一直在做$dp$题好久没做做别的了,,,所以来做点儿别的练练手,,,不然以前学的全忘了要/$kk$ 然后这题好像可以莫队/主席树/线段树/树状数组? 我就先只港下主 ...

  6. 学海无涯-php

  7. Python库的安装(Windows/Linux通用)

    pip安装 最简单的安装方式,自动下载并安装. pip:包管理工具 安装步骤 执行安装命令:pip install <package_name> wheel安装 在网速较差的情况下适用. ...

  8. git stash使用

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/daguanjia11/article/ ...

  9. springboot多环境(dev,test,prod)配置

    前情提要 在我们开发工作中,常常因为配置的问题,搞得头昏脑大.开发环境.测试环境.配置各不相同,数据库.redis.注册中心等等参数都不一致,如果放在同一个配置文件,就会发现诸多注释,发布不同的环境, ...

  10. Atom + Texlive 配置 Latex 环境

    Atom + Texlive 配置 Latex 环境 步骤1: 安装TexliveTexlive点击 "Download" 下载,然后安装,等待安装完成即可 步骤2: 安装Atom ...