我试图在Umbraco的后台上传一个csv文件。我是Angular的新手,所以不确定我哪里出错了,想知道是否有人可以引导我走向正确的方向。
这是HTML:
<input type="file" id="clinicUpload" name="file" onchange="angular.element(this).scope().uploadFile(this.files)" accept=".csv" />
My Angular js是:
$scope.uploadFile = function(files) {
var fd = new FormData();
//Take the first selected file
fd.append("file", files[0]);
$http.post("/umbraco/backoffice/Api/Clinic/BulkUpload", fd, {
withCredentials: false,
headers: { 'Content-Type': 'text/csv' },
transformRequest: angular.identity
})
.success()
.error();
};
我的c#代码是:
public HttpResponseMessage BulkUpload()
{
try
{
var files = HttpContext.Current.Request;
// Verify that the user selected a file
if (files != null && files.ContentLength > 0)
{
// get the file stream in a readable way
StreamReader reader = new StreamReader(files.InputStream);
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
}
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (Exception e)
{
}
}
我遇到的问题是“读者”问题。读取每行我在文件中获取额外的文本,如:
------ WebKitFormBoundaryDQ1Xx8AhG5dByO35 Content-Disposition:form-data;命名=&#34;文件&#34 ;;文件名=&#34; FILE.CSV&#34; 内容类型:应用/八位字节流
在没有添加所有额外信息的情况下,是否有更好的方法来解析此文件?我正确地通过Angular Js上传这个文件了吗?我应该在C#中以不同方式解析此文件吗? 任何帮助将不胜感激。