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. String,StringBuffer,StringBuilder的区别与共同点

    1. String与StringBuffer,StringBuilder的区别: String为什么不可变:String存储数据是有final修饰的字符数组private final char val ...

  2. Recurrent Neural Network[SRU]

    0.背景 对于如机器翻译.语言模型.观点挖掘.问答系统等都依赖于RNN模型,而序列的前后依赖导致RNN并行化较为困难,所以其计算速度远没有CNN那么快.即使不管训练的耗时程度,部署时候只要模型稍微大点 ...

  3. 反射那点基础-Method

    目录 1 获取 Method 1.1 方法 1.2 实例 2 Method 的方法 2.1 Java 方法基础知识 2.2 修饰符相关方法 2.2.1 获取修饰符 2.2.2 判断是否为 defaul ...

  4. 给扔物线 HenCoder Plus 学员的一次分享文字版

    半个月前,和我的终极技术目标扔物线朱凯一拍即合,到了他所开展的 HenCoder Plus 课程给大家分享了 1 个多小时的「模拟面试」心得,也顺便听了几次凯哥的课程,感觉真的挺用心的.自己也希望能一 ...

  5. .net core实践系列之SSO-同域实现

    前言 SSO的系列还是以.Net Core作为实践例子与大家分享,SSO在Web方面复杂度分同域与跨域.本篇先分享同域的设计与实现,跨域将在下篇与大家分享. 如有需要调试demo的,可把SSO项目部署 ...

  6. Mac 下编译安装 php-5.6

    1.安装 PHP 1.1 下载源码包 http://php.net/get/php-5.6.35.tar.bz2/from/a/mirror 1.2 编译&安装 ./configure --p ...

  7. Appium-处理系统弹窗

    前言: 最近在搞appium自动化,iOS的系统弹窗是大家都会遇到的,本文来总结处理这种弹窗的用法. 环境: MacOS:10.13.4 Appium-desktop:1.6.1 Xcode:9.3. ...

  8. matplotlib 入门之Usage Guide

    文章目录 Usage Guide plotting函数的输入 matplotlib, pyplot, pylab, 三者的联系 Coding style Backends 后端 matplotlib教 ...

  9. nginx的The page you are looking for is temporarily unavailable错误解决办法

    访问网站时出现如下错误,如下图: 检查php fastcgi进程数,如下图: 输出0则表示fastcgi进程数够大,修改scgi_params文件,如下图: 然后重启php-fpm和nginx,重新访 ...

  10. oc之考试答题类效果

    https://www.jianshu.com/p/ec29feb0b5a6 2017.07.27 11:48* 字数 424 阅读 615评论 9喜欢 11 demo地址:https://githu ...