1.引用文件 ajaxfileupload.js

@{
ViewBag.Title = "数据导入";
Layout = "~/Views/Shared/_IndexLayout.cshtml";
}
<!--单个文件-->
<script src="~/Content/scripts/uploadify/ajaxfileupload.js"></script> <script>
var loadingstatus = ""; var tmpkey = request('tmpkey'); //这里特别约定为了简约处理模板的key对应的解析方法名称和模板key一致
var keyvalue = request('keyvalue');
$(function () {
var url = '../../Master/ImportTemplate/DownloadTmp?tmpKey=' + tmpkey;
$('#lr-import').attr('href', url);
$('#uploadFile').bind("change", function (e) {
//btn_importdata();
}); // beginCount();
}); var timeID; function btn_importdata() {
$('#msg').html("");
var path = $("#uploadFile").val();
if (!path) {
dialogMsg("请选择要上传的文件!", 0);
return;
}
loadingstatus = "loading";
$('#msg').append("<br>执行中,这可能需要一些时间,请耐心等待....</br>");
$('#msg').append("<br>如果检测到有错误的请您按照提示排查处理后重新导入....</br>");
$.ajaxFileUpload({
url: "../../CVRM/ImportExcel/ImportData?key=" + keyvalue + "&funName=" + tmpkey,
secureuri: false,
fileElementId: 'uploadFile',
dataType: 'json',
success: function (data) {
if (data.status) {
var result = data.msg;
$('#msg').append(result);
}
else { dialogMsg(data.message, 0);
}
} });
} function btn_close() {
dialogClose();
} function beginCount() {
timeID = setInterval("getMsg()", 2000);
}
function stopCount() {
clearInterval(timeID);
}
function getMsg() {
if (loadingstatus == "loading") {
$.ajax({
url: "../../CVRM/ImportExcel/GetImportMsg",
dataType: "json",
async: true,
type: 'GET',
success: function (data) {
console.log(data);
if (data.errorcode==0) {
$('#msg').append(data.message);
if (data.message=="stop") {
stopCount();
}
} else {
stopCount();
} }
})
} } </script>
<form id="form1" style="margin-left: 1px; margin-right: 1px;">
<div class="formHead">
<div class="mcp_container">
<div class="col-xs-8 mcp-form-item" style="padding-left:5px;">
<input id="uploadFile" name="uploadFile" type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
</div>
<div class="col-xs-4 mcp-form-item">
<div class="btn-group">
<a id="lr-choose" class="btn btn-default" onclick="btn_importdata()"><i class="fa fa-sign-in"></i>&nbsp;开始导入</a>
<a id="lr-import" class="btn btn-default" > <i class="fa fa-download"></i>&nbsp;下载模板</a>
</div>
</div>
<div id="msg"> </div> </div> </div> </form>

3.后台接收

   public ActionResult ImportData(string key,string funName="")
{
try
{
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; if (files != null && files.Count > 0 && files[0].ContentLength > 0 && !string.IsNullOrEmpty(files[0].FileName))
{
string path = AppDomain.CurrentDomain.BaseDirectory + @"Upload\temp\";
DirectoryInfo dir = new DirectoryInfo(path);
if (!dir.Exists)
{
dir.Create();
}
string filename = Path.GetFileName(files[0].FileName);
if (!string.IsNullOrEmpty(filename))
{ var keyValue = Guid.NewGuid().ToString();
string FileEextension = Path.GetExtension(files[0].FileName);
filename = keyValue + FileEextension;
string Fullfilename = Path.Combine(path, filename);
files[0].SaveAs(Fullfilename); //保存服务器 //写入数据库
ImportExcelBiz importBiz = new ImportExcelBiz();
ImportExcelResultEntity result = importBiz.ImportData(key, funName, Fullfilename); //用完即删
if (System.IO.File.Exists(Fullfilename))
{
//如果存在则删除
System.IO.File.Delete(Fullfilename);
} return new ReponseModel { status = true, msg = result.Msg };
}
else
{
return Error("没有发现您上传的文件名,可能是浏览器兼容问题,请您换个浏览器试试! 详情: files[0].FileName filename为null");
} }
else
{
return HttpNotFound("没有发现您要上传的文件!");
} }
catch (Exception ex)
{
return Error("导入excel到报价中出现了异常 详情:"+ex.Message);
} } }

  

ajaxfileupload-上传文件示例的更多相关文章

  1. ajaxFileUpload上传文件后提示下载的问题

    在某些版本浏览器下ajaxFileUpload上传文件会提示下载, 1:为什么? 可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了. 2:解决方案 前端: f ...

  2. 在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览

    在使用 AjaxFileUpload  上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1 ...

  3. C#使用HttpWebRequest和HttpWebResponse上传文件示例

    C#使用HttpWebRequest和HttpWebResponse上传文件示例 1.HttpHelper类: 复制内容到剪贴板程序代码 using System;using System.Colle ...

  4. ajaxFileUpload上传文件简单示例

    写在前面: 上传文件的方式有很多,最近在做项目的时候,一开始也试用了利用jquery的插件ajaxFileUpload来上传大文件,下面,用一个上传文件的简单例子,记录下,学习的过程~~~ 还是老样子 ...

  5. ajaxFileUpload上传文件没反应

    调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...

  6. springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)

    首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...

  7. Jquery+ajaxfileupload上传文件

    1.说明 ajaxfileupload.js是一款jQuery插件,用于通过ajax上传文件. 下载地址:http://files.cnblogs.com/files/lengzhan/ajaxfil ...

  8. PHP上传文件示例

    虽然大多数人认为Web只包含网页,但HTTP协议实际上可以传输任何文件,如office文档.PDF.可执行文件.AVI.压缩文件及各种其他文件类型.虽然FTP在历史上一直是向服务器上传文件的标准方式, ...

  9. python网络编程--FTP上传文件示例

    1.基础版(供学习了解原理使用,low) server服务端 import socket import struct import json server = socket.socket() ip_p ...

  10. Python--day67--CBV和FBV、Request对象及上传文件示例

    1,CBV版添加新的出版社 views.py文件 urls.py文件 2,Request对象: request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpReques ...

随机推荐

  1. 问题总结——window平台下grunt\bower安装后无法运行的问题

    一.问题: 安装grunt或者bower后,在cmd控制台运行grunt -version 或者 bower -v会出现:“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”,

  2. 使用Word2010发布博客文章

    发布博客可以直接在web页面上面编辑,也可以使用客户端编辑,其中客户端支持windows live writer以及word本身的发布博客功能.个人试用后倾向于使用word发布博客文章. 下面的内容转 ...

  3. Maven环境搭建、调试、打包

    1.配置Maven环境 将下载文件解压,然后设置maven环境 新建环境变量M2_HOME 变量名:M2_HOME 变量值:F:\maven\apache-maven-3.0.3 追加path环境变量 ...

  4. HDU1878 欧拉回路---(并查集+图论性质)

    http://acm.hdu.edu.cn/showproblem.php?pid=1878 欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. codechef T1 What's int the name

    NITIKA: 姓名本无意题目描述 Nitika 读了一本历史书,想要理清其中的人物关系.因此她要她的哥哥把书中出现的历史人 物全部列出来.哥哥把列好的人名给了 Nitika,但 Nitika 非常不 ...

  6. 安装并解决purcell/emacs.d网络问题

    安装: $ git clone https://github.com/purcell/emacs.d.git ~/.emacs.d 不使用https访问lisp库: $ sed -i 's/https ...

  7. ajax邮箱、用户名唯一性验证

    <script type="text/javascript"> $(function () { $("#txtEmail").blur(functi ...

  8. sqlalchemy源代码阅读随笔(4):url。py 阅读

    在_to_string中,有 _rfc_1738_quote(text): 这个函数.这个主要是遵循 RFC 1738的规则.对传入的信息(主要是用户名或者密码)进行格式匹配.其代码就一行: retu ...

  9. 网关协议:CGI、FastCGI、WSGI

    CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页. CGI CGI即通用网关接口(Common Ga ...

  10. 在Servlet中获取Spring注解的bean

    最近由于项目中出现了Servlet调用Spring的bean,由于整个项目中所有的bean均是注解方式完成,如@Service,@Repository,@Resource等,但是Spring的容器管理 ...