如何结合IBrowserFile与CsvHelper?StreamReader参数该传入什么?
使用IBrowserFile配合CsvHelper的正确方式
你不需要给StreamReader传入本地路径,IBrowserFile是前端上传的文件对象,本身就提供了可直接读取的流,不用先保存到服务器本地再读取。
你原来的代码逻辑错误,因为上传的文件并没有自动保存到服务器的GetCurrentDirectory()路径下,所以拼接出来的路径根本找不到文件。正确的做法是直接调用IBrowserFile的OpenReadStream()方法获取文件流,传给StreamReader:
using (var stream = file.OpenReadStream()) using (var reader = new StreamReader(stream)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { // 示例:读取CSV文件到指定模型集合 var records = csv.GetRecords<YourModel>().ToList(); }
这种方式直接读取上传的数据流,既高效又避免了不必要的本地文件存储操作。
内容的提问来源于stack exchange,提问作者Mustafa
相关产品推荐
相关产品推荐

