使用其他浏览器时无法读取文件内容,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);

我该如何解决这个问题?

使用其他浏览器时无法读取文件内容,IE 除外

您需要使用 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