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

如何修改UploadFiles任务以支持接收所有类型文件?

解决方法

你的问题出在RequestImageFileAsync这个方法上——它是Blazor专门用来处理图片的API,会强制将上传的文件转换为指定格式的图片文件,所以非图片类型的文件(比如PDF、TXT)用这个方法肯定会失败。要支持所有文件类型,直接读取原始文件的流即可,不用经过图片转换步骤。

修改后的代码如下:

private async Task UploadFiles(InputFileChangeEventArgs inputFileChangeEventArgs)
{
    _CarregaFoto = true;

    var MAXALLOWEDSIZE = 60000000;
    var originalFile = inputFileChangeEventArgs.File; // 获取原始文件,不做图片转换

    var buffer = new byte[originalFile.Size];
    await originalFile.OpenReadStream(MAXALLOWEDSIZE).ReadAsync(buffer);

    AnexoDenunciaModel _novaFoto = new AnexoDenunciaModel();
    _novaFoto.imagem = buffer;
    _novaFoto.id_ocorre = id;
    _novaFoto.nome = originalFile.Name;
    _novaFoto.Denunciante = true;

    await _db.InsertAnexoDenuncia(_novaFoto);

    _CarregaFoto = false;
    await LeTabelas2();
}

关键改动说明:

  • 移除了fileFormat变量和RequestImageFileAsync调用,直接使用inputFileChangeEventArgs.File获取原始上传文件
  • 读取原始文件的流,保留文件的原始格式和内容
  • 确保buffer大小匹配原始文件的实际大小

这样修改后,不管是图片、PDF、TXT还是其他类型的文件,都能正常读取并上传到数据库了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:15:56