我正在使用 Valum 的 AJAX 文件上传器来上传 csv 文件。初始化它的代码是:
$(document).ready(function () {
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
// path to server-side upload script
action: 'handlers/PhoneNumberListHandler.ashx',
buttonTitle: 'Upload Document',
buttonText: ' Upload',
allowedExtensions: ['csv'],
sizeLimit: 1024000, // max size
});
});
<div id="file-uploader"></div>
到目前为止,在 c# 处理程序类中,我编写了以下代码:
HttpRequest request = context.Request;
byte[] buffer = new byte[request.ContentLength];
Stream inputStream;
string fileName;
inputStream = request.InputStream;
fileName = request["qqfile"];
using (var reader = new StreamReader(inputStream))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(';'); // gives some abstract characters
}
}
我的 csv 文件有三列电话、名字、姓氏,其中第一列是强制性的,其余是可选的。
我现在卡住了,因为我无法读取 .csv 文件。有人可以帮助我并建议我如何从流中读取 csv 文件内容,还是有其他方法可以做到这一点?我想提取 csv 内容并将每一行分别保存在数据库表中。
更新: 我在保存 csv 文件时进行了更改,现在内容如下所示:
电话号码、名字、姓氏
11111,泰姬陵,泰姬陵
22222,奥贝莱,
33333,,湖宫
44444,,
修改了上面的代码:
using (var reader = new StreamReader(inputStream))
{
List<string> listA = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(';');
listA.Add(values[0]);
}
}
我想获取列的单个值,在这里我在一个字符串中得到一整行。为了获得个人价值,我必须用“,”进一步拆分它并获得价值。我想知道有没有更好的方法来做到这一点?