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. commons

    <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --> <dependency> <g ...

  2. 之江学院第0届校赛 qwb与支教 (容斥公式)

    description qwb同时也是是之江学院的志愿者,暑期要前往周边地区支教,为了提高小学生的数学水平.她把小学生排成一排,从左至右从1开始依次往上报数. 玩完一轮后,他发现这个游戏太简单了.于是 ...

  3. 关于k Line Chart (k线图)

    K Line Chart python实现k线图的代码,之前找过matplotlib中文文档但是画k线图的finance方法已经弃用了.所以自己在网上搜寻一下加上改编,很好的实现出k线图, 代码如下: ...

  4. Freewheel Tech interview

    1.聊背景.. 2.聊项目..然饿我的项目是webvr..基本面试官很少会了解这个..应该再多做实习多做些项目.. 3.浏览器输入网址后到页面呈现出来的过程 4.缓存机制, 浏览器如何判断一个图片有没 ...

  5. mongoDB的简单使用

    1.客户端连接: ./mongo 2.数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实 ...

  6. LeetCode Regular Expression Matching 网上一个不错的实现(非递归)

    '.' Matches any single character.'*' Matches zero or more of the preceding element. The matching sho ...

  7. Java反射——java.lang.Class 类简介

    Java的基本思想之一是万事万物即对象,类也是一种对象.但是类是什么对象呢?Java中的类是java.lang.Class的实例化对象,这被成为类类型. //java.lang.Class类中的的主要 ...

  8. 工作中常用Linux命令--服务器运维

    工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...

  9. HDU-5451

    Best Solver Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Tota ...

  10. redis SCAN cursor

    https://redis.io/commands/scan 可以看到: sscan的返回结果,有两部分, 第一部分  是一个数字.其实代表一个游标. 第二部分  是结果. scan是以游标为基础,每 ...