You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取MudFileUpload选中文件的完整路径?

问题分析与解决方案

为什么拿不到文件完整路径

浏览器出于安全限制,不会给网页暴露本地文件的真实完整路径——这是浏览器的核心安全机制,防止网页获取用户本地文件系统的敏感信息。所以不管是IBrowserFile还是InputFileChangeEventArgs,都不可能拿到文件的本地路径。

正确做法:直接读文件流就行

你根本不需要完整路径,直接通过IBrowserFile提供的文件流就能读取CSV内容。给你调整后的代码:

Page.razor 代码

添加绑定CSV内容的输入框:

<MudFileUpload T="IBrowserFile" Accept=".csv" OnFilesChanged="OnFilesChanged" FilesChanged="UploadFiles">
    <ButtonTemplate>
        <MudIconButton HtmlTag="label"
               Icon="@Icons.Material.Filled.AttachFile"
               for="@context">
        </MudIconButton>
    </ButtonTemplate>
</MudFileUpload>

<input type="text" @bind="@CsvContent" style="width:100%; margin-top:1rem;" />

Page.razor.cs 代码

修改方法读取文件内容:

public string CsvContent { get; set; } = string.Empty;

private async Task UploadFiles(IBrowserFile file)
{
    // 直接打开文件流读取内容
    using var stream = file.OpenReadStream();
    using var reader = new StreamReader(stream);
    CsvContent = await reader.ReadToEndAsync();
}

public void OnFilesChanged(InputFileChangeEventArgs e)
{
    Console.WriteLine(e.File.Name);
}

补充说明

  • 用file.OpenReadStream()就能拿到文件的流,直接读内容就行,完全不需要依赖本地路径。
  • 用异步方法ReadToEndAsync()读取,避免阻塞UI线程。
  • 读取到的内容绑定到CsvContent后,会自动同步到输入框中显示。

内容的提问来源于stack exchange,提问作者TheBoubou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:00:15