使用其他浏览器时无法读取文件内容,IE 除外
本文关键字:文件 除外 IE 读取 其他 浏览器 | 更新日期: 2023-09-27 17:56:17
当我使用 IE 尝试此代码时,我可以读取文件的内容,因为 IE 提供了文件的完整路径。
void SaveBranchDetails()
{
string fileLocation = AsyncFileUploadBranch.PostedFile.FileName;
try
{
BranchData b = new BranchData();
StreamReader sr = new StreamReader(fileLocation);
var result = CSV.ReadingCSVFile<BranchData>(sr);
foreach (var rec in result)
{
//get details
b.Id = rec.Id;
b.Branch = rec.Branch;
b.Active = rec.Active;
b.SaveBranches();
}
sr.Close();
}
catch (Exception)
{
throw;
}
}
使用其他浏览器执行相同的任务会给我一个错误:
Could not find file 'C:'Program Files (x86)'IIS Express'branches.csv'.
在以下行:
StreamReader sr = new StreamReader(fileLocation);
我该如何解决这个问题?
您需要使用 FileContent
属性,因为这是从浏览器返回的字节流。
如果您按如下方式更改代码,我希望它适用于所有浏览器:
BranchData b = new BranchData();
using(var sr = new StreamReader(AsyncFileUploadBranch.FileContent))
{
using (var csvReader = new CsvReader(sr))
{
var result = csvReader.GetRecords<BranchData>().ToArray();
foreach (var rec in result)
{
//get details
b.Id = rec.Id;
b.Branch = rec.Branch;
b.Active = rec.Active;
b.SaveBranches();
}
}
}
如果这不起作用,您也可以尝试AsyncFileUploadBranch.PostedFile.InputStream
。