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. 钢琴 - steinway

    http://www.wangyanpiano.com/bbs/thread-104723-1-1.html Poston 波士顿钢琴    三角钢琴    GP-156    黑色抛光    178 ...

  2. Android开发中的小技巧

    转自:http://blog.csdn.net/guxiao1201/article/details/40655661 简单介绍: startActivities (Intent[] intents) ...

  3. android 之修改图片的某一颜色值

    首先我们来创建一个叫Image的类,这个类主要用来处理与图有关的一些操作. package org.cn.tools; import java.io.IOException; import java. ...

  4. 【59.49%】【codeforces 554B】Ohana Cleans Up

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. [tmux] Create collections of panes using tmux windows

    In tmux, a window is a collection of panes. Creating multiple windows is a great way to organize you ...

  6. [Grid Layout] Use the repeat function to efficiently write grid-template values

    We can use the repeat() function if we have repeating specifications for columns and rows. With the  ...

  7. 【iOS】怎样推断文本文件的字符编码格式

    整体思路: 遍历全部的字符编码.能正确读取输出转换的就是文本文件的编码格式. 代码例如以下: // // main.m // 检測文本字符编码格式的小技巧 // // Created by 杜子兮 ( ...

  8. JS调用ATL COM中的C++接口的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 首先创建一个ATL COM对象,其过程参考下面文章: C#调用ATLCOM 其实给COM对象添加方法和属性可以不用界面 ...

  9. ORACLE中死锁

    ORACLE中死锁的知识点总结   死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包 ...

  10. TensorFlow 学习(十)—— 工具函数

    1. 基本 tf.clip_by_value() 截断,常和对数函数结合使用 # 计算交叉熵 crose_ent = -tf.reduce_mean(tf.log(y_*tf.clip_by_valu ...