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. [内核编程] 键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试

    键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试 完整源代码 /// /// @file ctrl2cap.c /// @author wowocock /// @date 2009-1 ...

  2. 摘录-MYSQL5.7版本sql_mode=only_full_group_by问题

    下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only ...

  3. Android中的动画详解系列【2】——飞舞的蝴蝶

    这一篇来使用逐帧动画和补间动画来实现一个小例子,首先我们来看看Android中的补间动画. Android中使用Animation代表抽象的动画类,该类包括下面几个子类: AlphaAnimation ...

  4. [Javascript] Javascript 'in' opreator

    If you want to check whether a key is inside an Object or Array, you can use 'in': Object: const obj ...

  5. 用DOM4J包实现对xml文件按属性分离。

    转自本人博客:http://www.xgezhang.com/dom4j_xml_separata.html dom4j是一个Java的XML API.类似于jdom.用来读写XML文件的. dom4 ...

  6. Erlang 进制转换

    http://www.cnblogs.com/me-sa/archive/2012/03/20/erlang0047.html bnot unary bitwise not integer div i ...

  7. Android 让文本输入框默认不获取焦点

    项目中有个检索功能,页面上有个EditText输入框,打开页面后,焦点默认在EditText上,这样的话软键盘默认就会显示出来,占据大半个屏幕. 后来想办法将这个给去掉了,原先考虑着将焦点赋给页面上的 ...

  8. java 原子量Atomic举例(AtomicReference)

    java并发库提供了很多原子类来支持并发访问的数据安全性,除了常用的 AtomicInteger.AtomicBoolean.AtomicLong 外还有 AtomicReference 用以支持对象 ...

  9. 【t058】拜年

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 拜年是中国人少不了的风俗.还没过年呢,刚上小学的妮妮已经等不及要给她的小伙伴去拜年了,但是她不知道如何 ...

  10. nopCommerce 3.9 接口笔记

    接口笔记 Nop.Services.Configuration ISettingService : 配置接口(查看) Nop.Services.Localization ILocalizationSe ...