【问题标题】:Return file as stream将文件作为流返回
【发布时间】:2020-01-06 07:44:31
【问题描述】:

当客户端发送用户的 id 时,我需要将文件作为流返回。文件可以是图像、PDF、视频或声音。

我正在使用此代码:

[HttpGet]
public async Task<FileStreamResult> GetAvatar(int id)
{
    var result = await mediator.Send(new FindUserWithIdCommand { userId = id });
    if (result.Success)
    {
        return uploadService.GetFileStream(result.Result.AvatarName);
    }
    return null;
}

上传服务:

public FileStreamResult GetFileStream(string FileName)
{
    try
    {
        var stream = File.OpenRead(Path.Combine(finder.PathAvatarUserUploadFolder(), FileName));
        FileStreamResult file = new FileStreamResult(stream, "application/octet-stream");
        return file;
    }
    catch (Exception ex)
    {
        throw;
    }
}

但是当我在 postMan 中发送此操作的请求时,它会显示以下结果:

问题出在哪里,我该如何解决?

【问题讨论】:

  • 你能解释一下问题是什么吗?你要求一个文件,你从我看到的文件中得到一个文件
  • @SamiKuhmonen 我需要返回文件
  • 你从我所看到的得到一个文件。那么究竟是什么在这里不起作用?
  • @SamiKuhmonen 我需要在此处和浏览器中显示文件,但我像文件一样下载,我需要转到下载文件夹并打开它。

标签: c# asp.net asp.net-core


【解决方案1】:

您的代码正在做它应该做的事情。您看到的是字节码,因为 Postman 不支持 PDF 等内容的本机渲染。它文件;它只是显示为“原始”。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多