.NET 上传并解析CSV文件存库
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文件存库的更多相关文章
- poi excel文件上传并解析xls文件
1.jsp页面 <form action="hw/pe_xls_upload" method="post" enctype="multipart ...
- SpringMVc上传excel或csv文件
1.JSP页面代码 <form enctype=""multipart/form-data" method="post"> <inp ...
- php文件上传代码解析
php文件上传代码解析 is_uploaded_file() //函数判断指定的文件是否是通过 HTTP POST 上传的,返回一个布尔值. $_FILES['upfile']['tmp_name' ...
- Web攻防系列教程之文件上传攻防解析(转载)
Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的 ...
- java 文件上传与解析(excel,txt)
excel上传与解析 https://blog.csdn.net/zsysu_it/article/details/79074067 txt解析 https://blog.csdn.net/CSDNw ...
- php解析.csv文件
public function actionImport() { //post请求过来的 $fileName = $_FILES['file']['name']; $fileTmpName = $_F ...
- salesforce lightning零基础学习(十七) 实现上传 Excel解析其内容
本篇参考: https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader https://github.com/SheetJS/sheetjs ...
- .Net neatupload上传控件实现文件上传的进度条
1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找) 2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图: 3. 加入neatuplaod这个文件夹(可以到nea ...
- php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...
随机推荐
- 关于LayoutParams 分类: H1_ANDROID 2013-10-27 20:34 776人阅读 评论(0) 收藏
每一个布局均有一个叫LayoutParams的内部类,如: LinearLayout.LayoutParams RelativeLayout.LayoutParams AbsoluteLayout ...
- 益智小游戏(app)
最好的益智类游戏要基于一定的数学原理. 一笔完成:(拓扑学,哥尼斯堡问题) 哥尼斯堡七桥问题
- runtimeException也是能够捕获的
如题, 运行结果: bbb abcdef @Test public void testRuntimeException() { ; try { aaa333(); } catch (Exception ...
- 小强的HTML5移动开发之路(49)——HTML5开发神器HBuilder
今天给大家介绍一款开发HTML5的神器--HBuilder. 下载地址:http://www.dcloud.net.cn/ 一.新建文件 可以看到支持web app开发和普通网站前端开发,我们首先建立 ...
- Ext.Ajax.request用法
向一个远程服务器发送HTTP请求. Ajax服务器请求是异步的, 所以对响应数据的处理需要使用回调函数来实现. var params = {}; var ret; Ext.Ajax.request({ ...
- 【54.38%】【BZOJ 4300】绝世好题
Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1120 Solved: 609 [Submit][Status][Discuss] Descript ...
- [Clojure] A Room-Escape game, playing with telnet and pure-text commands - Part 3
Code Path: https://github.com/bluesilence/Lisp/blob/master/clojure/projects/room-escape/src/room_esc ...
- sql server中查询结果集顺序问题
因为优化器可能会选择并行处理,或者在多文件情况下不按“期待”顺序扫描数据,所以无法保证数据的顺序.唯一能确保顺序的只有order by. 并行处理的过程导致顺序不一致,单核上不存在并行,而双核,可能使 ...
- 关于在方法里面使用泛型public static <T> T
对泛型的理解一直处于模糊的状态,所以今天就专门看了看泛型,看到了如下的一段代码,网上没有找到相应的解释. 然后尝试着自己理解了一下,第一次写博客,手比较生. 现在就开始来写我的理解. 看到这个方法的第 ...
- 【CTO俱乐部研修班开课】看板先驱David J. Anderson:看板核心在于创造一种能力——提升敏捷性
看板开发方法是近年来最热门的敏捷和精益开发方法.看板之父David J. Anderson觉得其核心在于帮助企业创造一种能力--提升敏捷性.CTO俱乐部看板研修班将通过理论.沙盘模拟.真实案例分享等阐 ...