1.前端:

放置浏览按钮

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

2. JS:

注册浏览按钮的事件

  1. var ChoseFile = function () {
  2. $("input[name=fileString]")
  3. .change(function () {
  4. var filePath = $("[name='fileString']");
  5. //读取文件内容
  6. var formData = new FormData();
  7. formData.append('file[]', filePath[0].files[0]);
  8.  
  9. $.ajax({
  10. url: "XXXXXXXX入库链接",
  11. type: 'POST',
  12. data: formData,
  13. async: false,
  14. cache: false,
  15. contentType: false,
  16. processData: false,
  17. success: function (returndata) {
  18. alert("上传成功");
  19. },
  20. error: function (returndata) {
  21. alert("上传失败");
  22. }
  23. });
  24.  
  25. });
  26. }

3 controller:

  1. [CustomAuthorize(AuthType.Authrozied)]
  2. public JsonResult DataImport(FormCollection form)
  3. {
  4. string zipDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "templateFiles");
  5. string masterFile = Path.Combine(zipDir, "template" + ".csv");
  6. if (!Directory.Exists(zipDir))
  7. {
  8. Directory.CreateDirectory(zipDir);
  9. }
  10. var file = Request.Files[];
           //上传
  11. file.SaveAs(masterFile);
  12. DataTable dt = GetCSVToData(masterFile);
  13. List<ScheduleTableInfo> infos = new List<ScheduleTableInfo>();
  14. foreach (DataRow dataRow in dt.Rows)
  15. {
  16. ScheduleTableInfo info = new ScheduleTableInfo();
  17. info.TemplateName = dataRow["标题名1"].ToString();
  18. info.SumLevelName = dataRow["标题名2"].ToString();
  19. infos.Add(info);
  20. }
  21. //执行入库操作
  22. int value = _client.ImportData(infos);
  23.  
  24. var jsonStr = JsonConvert.SerializeObject(infos, new DataTableConverter(),
  25. new JavaScriptDateTimeConverter());
  26. jsonStr = jsonStr.Replace("\\\\n", "\\r");
  27.  
  28. var result = Json(jsonStr, JsonRequestBehavior.AllowGet);
  29. return result;
  30. }

功能子函数:

  1. private DataTable GetCSVToData(string strCsvPath, bool hasHeader = true, bool needLineNo = false)
  2. {
  3. CSVReader csvReader = null;
  4. try
  5. {
  6. csvReader = new CSVReader(strCsvPath, FileEncoding.GetType(strCsvPath));
  7. DataTable dt = csvReader.GetTable(, -, hasHeader);
  8. return dt;
  9. }
  10. catch (Exception ex)
  11. {
  12. LogService.Debug("解析csv文件错误:" + ex);
  13. return null;
  14. }
  15. finally
  16. {
  17. if (csvReader != null)
  18. {
  19. csvReader.Dispose();
  20. }
  21. }
  22. }

导入文件,获取文件位置

.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. 关于LayoutParams 分类: H1_ANDROID 2013-10-27 20:34 776人阅读 评论(0) 收藏

    每一个布局均有一个叫LayoutParams的内部类,如: LinearLayout.LayoutParams  RelativeLayout.LayoutParams  AbsoluteLayout ...

  2. 益智小游戏(app)

    最好的益智类游戏要基于一定的数学原理. 一笔完成:(拓扑学,哥尼斯堡问题) 哥尼斯堡七桥问题

  3. runtimeException也是能够捕获的

    如题, 运行结果: bbb abcdef @Test public void testRuntimeException() { ; try { aaa333(); } catch (Exception ...

  4. 小强的HTML5移动开发之路(49)——HTML5开发神器HBuilder

    今天给大家介绍一款开发HTML5的神器--HBuilder. 下载地址:http://www.dcloud.net.cn/ 一.新建文件 可以看到支持web app开发和普通网站前端开发,我们首先建立 ...

  5. Ext.Ajax.request用法

    向一个远程服务器发送HTTP请求. Ajax服务器请求是异步的, 所以对响应数据的处理需要使用回调函数来实现. var params = {}; var ret; Ext.Ajax.request({ ...

  6. 【54.38%】【BZOJ 4300】绝世好题

    Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1120  Solved: 609 [Submit][Status][Discuss] Descript ...

  7. [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 ...

  8. sql server中查询结果集顺序问题

    因为优化器可能会选择并行处理,或者在多文件情况下不按“期待”顺序扫描数据,所以无法保证数据的顺序.唯一能确保顺序的只有order by. 并行处理的过程导致顺序不一致,单核上不存在并行,而双核,可能使 ...

  9. 关于在方法里面使用泛型public static <T> T

    对泛型的理解一直处于模糊的状态,所以今天就专门看了看泛型,看到了如下的一段代码,网上没有找到相应的解释. 然后尝试着自己理解了一下,第一次写博客,手比较生. 现在就开始来写我的理解. 看到这个方法的第 ...

  10. 【CTO俱乐部研修班开课】看板先驱David J. Anderson:看板核心在于创造一种能力——提升敏捷性

    看板开发方法是近年来最热门的敏捷和精益开发方法.看板之父David J. Anderson觉得其核心在于帮助企业创造一种能力--提升敏捷性.CTO俱乐部看板研修班将通过理论.沙盘模拟.真实案例分享等阐 ...