直接上代码吧

前台

先引用 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. 优雅的使用 ThreadLocal

    前言 在我们日常 Java Web 开发中难免遇到需要把一个参数层层的传递到最内层,然后中间层根本不需要使用这个参数,或者是仅仅在特定的工具类中使用,这样我们完全没有必要在每一个方法里面都传递这样一个 ...

  2. XRPC之接口双向调用

    一般远程接口调用的服务都是基于客户端主动调用服务端,由服务端来提供相关的接口服务:在新版本的XRPC中引入了一个新的功能,即接口双向通讯,组件提供服务创建客户会话的接口代理并调用客户提供的接口服务.接 ...

  3. 【一起学源码-微服务】Ribbon 源码二:通过Debug找出Ribbon初始化流程及ILoadBalancer原理分析

    前言 前情回顾 上一讲讲了Ribbon的基础知识,通过一个简单的demo看了下Ribbon的负载均衡,我们在RestTemplate上加了@LoadBalanced注解后,就能够自动的负载均衡了. 本 ...

  4. MacBook Pro 入手一年了,到底香不香?

    最近又有小伙伴问到底值不值得入手一台 MacBook Pro,松哥自己在 2018 年 10 月份的时候入手了一台,到现在为止,也用了一年多了,今天就来和小伙伴们聊一聊使用感受,至于到底值不值,需要大 ...

  5. Linux下扫描服务器IP地址是否冲突(arp-scan)

    部署服务突然发现,连接的服务器断开了,因为服务器用户名密码是一样的,所以重新连接后,发现文件变了,跟之前不一样. 猜想是不是ip地址冲突了,两次连接的服务器不同. 网上查找资料说可以用工具扫描.工具: ...

  6. C# 将Word转为PDF、XPS、Epub、RTF(基于Spire.Cloud.Word.SDK)

    本文介绍通过调用Spire.Cloud.Word.SDK提供的ConvertApi接口将Word转换为PDF.XPS.Epub.RTF以及将Docx转为Doc格式等.调用接口方法及步骤参考以下步骤: ...

  7. JavaScript-null与' '的区别

    null代表的是空对象无地址,而' '则代表的是有地址,但是这个地址里面的内容为空

  8. Spring--2.Spring之IOC--了解IOC容器

    IOC(容器),用来集成别的框架 1.IOC(Inversion(反转)Of Control):控制反转 控制:资源的获取方式: 主动式: BookServlet{ BookService bs=ne ...

  9. GoCenter助力Golang全速前进

    一.背景 Go语言是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.为了方便搜索和识别,有时会将其称为Golang.自2009年11月Google正式宣布推出,成为开放 ...

  10. vue 项目路由跳转后显示不同的title

    1.在router/index.js的每个路由中配置title 2.在项目中运行命令 npm install vue-wechat-title --save 安装插件(在 package.json文件 ...