1.前端:

放置浏览按钮

        <div class="row inner_table text-center">
<input id="fileId" type="file" name="fileString" class="file ">
</div>

2. JS:

注册浏览按钮的事件

var ChoseFile = function () {
$("input[name=fileString]")
.change(function () {
var filePath = $("[name='fileString']");
//读取文件内容
var formData = new FormData();
formData.append('file[]', filePath[0].files[0]); $.ajax({
url: "XXXXXXXX入库链接",
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert("上传成功");
},
error: function (returndata) {
alert("上传失败");
}
}); });
}

3 controller:

[CustomAuthorize(AuthType.Authrozied)]
public JsonResult DataImport(FormCollection form)
{
string zipDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "templateFiles");
string masterFile = Path.Combine(zipDir, "template" + ".csv");
if (!Directory.Exists(zipDir))
{
Directory.CreateDirectory(zipDir);
}
var file = Request.Files[];
       //上传
file.SaveAs(masterFile);
DataTable dt = GetCSVToData(masterFile);
List<ScheduleTableInfo> infos = new List<ScheduleTableInfo>();
foreach (DataRow dataRow in dt.Rows)
{
ScheduleTableInfo info = new ScheduleTableInfo();
info.TemplateName = dataRow["标题名1"].ToString();
info.SumLevelName = dataRow["标题名2"].ToString();
infos.Add(info);
}
//执行入库操作
int value = _client.ImportData(infos); var jsonStr = JsonConvert.SerializeObject(infos, new DataTableConverter(),
new JavaScriptDateTimeConverter());
jsonStr = jsonStr.Replace("\\\\n", "\\r"); var result = Json(jsonStr, JsonRequestBehavior.AllowGet);
return result;
}

功能子函数:

        private DataTable GetCSVToData(string strCsvPath, bool hasHeader = true, bool needLineNo = false)
{
CSVReader csvReader = null;
try
{
csvReader = new CSVReader(strCsvPath, FileEncoding.GetType(strCsvPath));
DataTable dt = csvReader.GetTable(, -, hasHeader);
return dt;
}
catch (Exception ex)
{
LogService.Debug("解析csv文件错误:" + ex);
return null;
}
finally
{
if (csvReader != null)
{
csvReader.Dispose();
}
}
}

导入文件,获取文件位置

.NET 上传并解析CSV文件存库的更多相关文章

  1. poi excel文件上传并解析xls文件

    1.jsp页面 <form action="hw/pe_xls_upload" method="post" enctype="multipart ...

  2. SpringMVc上传excel或csv文件

    1.JSP页面代码 <form enctype=""multipart/form-data" method="post"> <inp ...

  3. php文件上传代码解析

    php文件上传代码解析 is_uploaded_file()  //函数判断指定的文件是否是通过 HTTP POST 上传的,返回一个布尔值. $_FILES['upfile']['tmp_name' ...

  4. Web攻防系列教程之文件上传攻防解析(转载)

    Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的 ...

  5. java 文件上传与解析(excel,txt)

    excel上传与解析 https://blog.csdn.net/zsysu_it/article/details/79074067 txt解析 https://blog.csdn.net/CSDNw ...

  6. php解析.csv文件

    public function actionImport() { //post请求过来的 $fileName = $_FILES['file']['name']; $fileTmpName = $_F ...

  7. salesforce lightning零基础学习(十七) 实现上传 Excel解析其内容

    本篇参考: https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader https://github.com/SheetJS/sheetjs ...

  8. .Net neatupload上传控件实现文件上传的进度条

    1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找) 2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图: 3. 加入neatuplaod这个文件夹(可以到nea ...

  9. php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...

随机推荐

  1. HDU - 3078 Network(暴力+LCA)

    题目大意:给出n个点的权值.m条边,2种操作 0 u num,将第u个点的权值改成num k u v,询问u到v这条路上第k大的权值点 解题思路:该点的话直接该,找第k大的话直接暴力 #include ...

  2. php实现 简单密码(代码颜色变化)

    php实现  简单密码(代码颜色变化) 一.总结 一句话总结:写代码的时候一定要关注代码的颜色变化,不然低级错误害死人.常量变量会有不同颜色,所以$str少$符号变成常量的时候很容易发现. 1.变量$ ...

  3. php函数实现显示几秒前,几分钟前,几天前等方法(网络上什么都有)

    php函数实现显示几秒前,几分钟前,几天前等方法(网络上什么都有) 一.总结 网络上面什么函数都有 二.php函数实现显示几秒前,几分钟前,几天前等方法 现在很多网站的时间显示都很人性化,不再是单纯的 ...

  4. 小强的HTML5移动开发之路(48)——(小练习)新闻订阅系统【1】

    一.总体设计 二.数据库设计 --新闻类别表 create table news_cate( news_cateid int primary key auto_increment, news_icon ...

  5. CVE­-2014-3566

    https://access.redhat.com/articles/1232123 https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv ...

  6. 《TCP/IP具体解释卷2:实现》笔记--域和协议

    Net/3组把协议关联到一个域,而且用一个协议族常量来标识每一个域.Net/3还通过全部的编址方法将协议分组. 在一个域中 的每一个协议使用同类地址.而且每种地址仅仅被一个域使用.作为结果,一个域能通 ...

  7. 利用huson的日志获取编译错误信息的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用hudson编译一百多个VC工程,输出的日志有6M之大,摆在我面前的一个问题是如何利用这个日志信息来获取编译错误信 ...

  8. 使用Fernflower 比较准确的反编译整个java项目

    以前一直使用jd-gui.exe  ,都说是最好用的,但是编译总是有问题,还得修改,使用idea 后,感觉反编译的相当好,看注释是 Fernflower,然后参考 http://the.bytecod ...

  9. 5.7-基于Binlog+Position的复制搭建

    基本环境   Master Slave MySQL版本 MySQL-5.7.16-X86_64 MySQL-5.7.16-X86_64 IP 192.168.56.156 192.168.56.157 ...

  10. 【codeforces 546A】Soldier and Bananas

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...