3.上传文件,写入log

using DC.BE.Business.SYS;
using DC.BE.Entity.ERP;
using DC.BE.Entity.SAS;
using DC.BE.Entity.SYS;
using DC.Framework.Logging;
using DC.Framework.Logging.ELLAB;
using Excel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DC.BE.Entity.Common;
using DC.Framework.Repository.Definition;
using System.Diagnostics;
using DC.Backend.Utility;
using DC.BE.Business.SYS.SYSBModel;
using DC.BE.Business.SAS;
using DC.BE.Entity.Security;
using DC.BE.BusinessImpl.Exceptions;
using DC.BE.BusinessImpl.SYS; namespace DC.Website.MVC5.Controllers.SYS.Base
{
public class BaseDataImportController : Controller
{
private readonly ITsysManagementBusiness _tsysManagementBusiness;
private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(BaseDataImportController).FullName);
private readonly ITsysStoreInfoBusiness _tsysStoreInfoBusiness;
private readonly ITsasManagementBusiness _tsasManagementBusiness;
private readonly ITsasRegCompanyBusiness _TsasRegCompanyBusiness;
private readonly IUnitOfWork _unitOfWork;
private readonly DcContext _dcContext; private readonly IUploadBaseDataBusiness _iuploadBaseDataToActualBusiness; public BaseDataImportController(ITsysManagementBusiness tsysManagementBusiness, ITsysStoreInfoBusiness tsysStoreInfoBusiness, IUnitOfWork unitOfWork, ITsasManagementBusiness tsasManagementBusiness, DcContext dcContext,
ITsasRegCompanyBusiness TsasRegCompanyBusiness, IUploadBaseDataBusiness iUploadBaseDataToActualBusiness)
{
_tsysManagementBusiness = tsysManagementBusiness;
_tsysStoreInfoBusiness = tsysStoreInfoBusiness;
_unitOfWork = unitOfWork;
_tsasManagementBusiness = tsasManagementBusiness;
_dcContext = dcContext;
_TsasRegCompanyBusiness = TsasRegCompanyBusiness;
_iuploadBaseDataToActualBusiness = iUploadBaseDataToActualBusiness;
} //上传基础数据EXCEL
public JsonResult BaseDataTemplateImport(HttpPostedFileBase file)
{
string compId = Request["hid_value"];
//this.DeleteTempDatabase();
//this.CopyTempDatabase(compId);
//读取配置文件上传路径
//var sourceFolder = GlobalConfigurations.sourceFolder;
var sourceFolder = Server.MapPath("/") + @"\Imports\\";
String result = string.Empty;
// v2.00.056 李恒宇 add_s
//System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceFolder);
//if (di.GetFiles().Length + di.GetDirectories().Length != 0)
//{
// var ExistsFilePath = Path.Combine(sourceFolder, Path.GetFileName(file.FileName));
// if (System.IO.File.Exists(ExistsFilePath))
// {
// return "FileExists";
// }
//}
// v2.00.056 李恒宇 add_e
//路径不存在 创建路径
if (!Directory.Exists(sourceFolder))
{
Directory.CreateDirectory(sourceFolder);
}
// v2.00.056 李恒宇 rep_s
//var FilePath = Path.Combine(sourceFolder,compId+" "+Path.GetFileName(file.FileName));
Guid fileGuid = Guid.NewGuid();
Guid userId = _dcContext.CurrentUser.Id;
//string fileName = compId + Path.GetFileName(file.FileName).Split('.')[0] + "+" + fileGuid + ".xlsx";
string fileName = compId + Path.GetFileName(file.FileName).Split('.')[] + "+" + userId + "+" + fileGuid + ".xlsx";
string passExcelName = compId + Path.GetFileName(file.FileName).Split('.')[];
var FilePath = Path.Combine(sourceFolder, Path.GetFileName(fileName));
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceFolder);
if (di.GetFiles().Length + di.GetDirectories().Length != )
{
FileInfo[] dirInfo = di.GetFiles();
var existExcelName = "";
foreach (FileInfo NextFolder in dirInfo)
{
existExcelName = NextFolder.Name.Split('+')[];
if (existExcelName.Equals(passExcelName))
{
NextFolder.Delete();
}
}
}
// v2.00.056 李恒宇 rep_e
file.SaveAs(FilePath);
// v2.00.056 李恒宇 rep_s
// return result; ResultData RDS = _iuploadBaseDataToActualBusiness.BaseDataTemplateImport(compId, FilePath); // 清除上传的表
System.IO.File.Delete(FilePath);
return Json(RDS);
//return "FileSuccess";
// v2.00.056 李恒宇 rep_e
} public JsonResult GetAllDataImportByCompany(String jsonCompany)
{
List<BaseDataUploadBModel> result = _tsysManagementBusiness.GetAllDataImportByCompany(jsonCompany);
return Json(result);
} /// <summary>
/// 复制临时DB
/// </summary>
/// <param name="compId"></param>
public void CopyTempDatabase(String compId)
{
string connectionString = GlobalConfigurations.connectionString;
string sourceDb = GlobalConfigurations.actualDB;//actualDB
string targetDb = GlobalConfigurations.tempDB;//tempDB
SmoBulkCopy.Copy(connectionString, sourceDb, targetDb, Guid.Parse(compId));
} /// <summary>
/// 删除临时DB
/// </summary>
public void DeleteTempDatabase()
{
string targetDb = GlobalConfigurations.tempDB;
_tsysManagementBusiness.DeleteTempDatabase(targetDb);
} public void PauseLogin(String compId)
{
if (compId == "" || compId == null)
{
return;
}
_tsasManagementBusiness.PauseLogin(Guid.Parse(compId));
} public void RecoveryLogin(String compId)
{
if (compId == "" || compId == null)
{
return;
}
_tsasManagementBusiness.RecoveryLogin(Guid.Parse(compId));
} //v2.00.152 吕毅飞 2017/3/24 add_s
public ActionResult DownloadLog(string companyId)
{
string contentType = "application/txt";
string log = System.Configuration.ConfigurationManager.AppSettings["baseDataImportLog"];
Guid company = Guid.Parse(companyId);
TsasRegCompany comp = _TsasRegCompanyBusiness.Get(company);
log = log.Replace("BulkImportService.log", comp.CompanyLoginMark + "基础数据导入日志.txt");
if (!System.IO.File.Exists(log))//目录下是否有文件
{
System.IO.FileStream fs = new FileStream(log, FileMode.OpenOrCreate);
fs.Close();
}
var file = System.IO.File.Open(log, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var stream = (Stream)(file);
return File(stream, contentType, comp.CompanyLoginMark + "基础数据导入日志.txt");
}
//v2.00.152 吕毅飞 2017/3/24 add_e
}
}

NPOI 上传Excel功能(二)的更多相关文章

  1. NPOI 上传Excel功能

    1.首先写一个Excel表格,第一行数据库类型(varchar.date.decimal).第二行数据库类型长度(100.12,4.时间日期为空)2.html 加按钮 { type: "bu ...

  2. NPOI 上传Excel功能(三)

    4.验证Excel并上传 using DC.BE.Business.SAS; using DC.BE.Business.SYS; using DC.BE.Entity.SAS; using DC.BE ...

  3. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  4. .Net NPOI 上传excel文件、提交后台获取excel里的数据

    1.导入NPOI.dll 2.添加类NPOIExcel.cs using System; using System.Collections.Generic; using System.Text; us ...

  5. 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现

    ----------------------------------------------------------------------------------------------[版权申明: ...

  6. Salesforce LWC学习(三十二)实现上传 Excel解析其内容

    本篇参考:salesforce lightning零基础学习(十七) 实现上传 Excel解析其内容 上一篇我们写了aura方式上传excel解析其内容.lwc作为salesforce的新宠儿,逐渐的 ...

  7. 微信小程序上传Excel文本文件功能

    问题: 在开发过程中会发现微信小程序有很多功能都还不能满足我们的需求,谁叫客户就是上帝呢,前几天小编遇到了这么个问题,就是用微信小程序上传文件,但是还以为微信带有这个模块,可是查了许久还是没有找到,只 ...

  8. java上传excel到后台解析入库

    背景:最近需要做一个excel模板导入的功能,以便用户可以自己增删改查数据,当然,只有特别的用户才能有此权限,捋了捋思路,还是从前端写起 实现: 页面最后的效果如下,可以自己修改,删除,导入导出数据, ...

  9. js上传Excel文件

    一.问题 需要在项目里添加一个上传excel文件的功能,因为其他同样的后台里面有上传文件的功能,第一反应就是想着直接用.了解了一下发现它是利用bootstrap的fileinput实现的,但是我怎么都 ...

随机推荐

  1. Ubuntu 14.04 安装 CUDA 问题及解决

    本文安装环境: - 双显卡: intel 集显 + nvidia 独显 - Ubuntu 14.04.4 - CUDA 8.0.44 1. Deb 安装包是个坑 (不要用这种方法!) 使用 Deb 安 ...

  2. Springboot实现跨域请求

    之所以需要用到跨域请求,目的在于现在的Java项目,几乎基本上都前后端分离,除一些较老的维护项目外(通常是单体或者是maven多模块形式,不过本质上还是将前端放在webapps下). SpringBo ...

  3. 给大家推荐一个C#下的Ribbon风格的Forms实现示例-含源码

    C#下的Ribbon风格的Forms实现示例:源码下载地址

  4. Java中的hashCode() 和 equals()的若干问题解答

    一.hashCode()的作用 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int ...

  5. 将Oracle 12c的某用户数据迁移至OracleXE的用户

    前言:OracleXE全称为oracle database 11g express edition .Oracle Database 11g Express Edition是 Oracle 数据库的免 ...

  6. 支持“xxxContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

    将项目的数据库连接用户及密码修改后(切换用户,用户名与原来不一样,用户下对象结构一致),报以下错误: 支持“XXXDBContext”上下文的模型已在数据库创建后发生更改.请考虑使用 Code Fir ...

  7. 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册

    项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...

  8. Microsoft.Extensions.DependencyInjection不同版本导致EF出现内存泄露。

    我的代码里将IServiceProvider放入ServiceLocator中遇到的问题. 注:以下所有例子都是Console里的结论,AspNetCore里不管怎么玩都没有问题,有其他帖子测试出在A ...

  9. 你分得清楚Maven的聚合和继承吗?

    用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标.对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西.但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系.而继承则 ...

  10. python--__init__()方法和__new__()方法

    这两个方法是python类中的基本方法,经常会在一些面试中问到.即便没有要面试之类的,学习一下其内部的原理和使用也是有必要的. 首先区分一下这两个方法: __init__:初始化方法 __new__: ...