Blazor Server 如何从客户端上读取文件内容

23 篇文章 0 订阅
19 篇文章 1 订阅

有时候,我们需要从Excel或文本文件读取数据保存到数据库,以方便数据批量或大文本录入。一种方式是将文件上传到Server端进行读取,一种方式当然是直接在网页客户端读取后发送数据到Server端进行保存。考虑到Server端的安全性,后一种方式相对更安全,同时减轻Server端压力,也不用编写上传文件的复杂代码。

但是,Blazor 只提供上传文件的组件InputFile,它获取的是实现IBrowserFile接口的表示从 InputFile 组件中选择的文件的数据,需要注意的是它没有包含原始文件的路径。正因为没有路径,不可能以打开文件的方式去直接打开它然后读取,所以,需要再次将它写入到定义好的路径中,然后打开它。

以下是实现的代码:

private async void LoadFiles(IBrowserFile file)
{
	var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());//设置包含临时路径和临时文件名的参数
    FileStream fs = new(path, FileMode.Create);
    await file.OpenReadStream().CopyToAsync(fs);//将文件数据写入到临时路径
    fs.Close();
    using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
	{
		//读取文件数据
		……
	}
    File.Delete(path);//读完后删除临时文件
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值