Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以流形式返回文件_C#_Asp.net_Asp.net Core - Fatal编程技术网

C# 以流形式返回文件

C# 以流形式返回文件,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我需要在客户端发送用户id时,将其作为流返回文件。文件可以是图像、PDF、视频或声音 我正在使用以下代码: [HttpGet] public async Task<FileStreamResult> GetAvatar(int id) { var result = await mediator.Send(new FindUserWithIdCommand { userId = id }); if (result.Success) { retur

我需要在客户端发送用户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;
}
但当我在postMan中发送此操作的请求时,它会显示以下结果:


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

您的代码正在执行它应该执行的操作。您看到的是字节码,因为Postman不支持PDF之类的本地呈现。它是文件;它只是显示为“原始”。

您能解释一下问题是什么吗?你要求一份文件,你从我那里得到一份文件see@SamiKuhmonen我需要返回文件,你从我看到的文件中得到一个文件。那么这里到底有什么不起作用呢?@SamiKuhmonen我需要在这里和浏览器中显示文件,但我像文件一样下载,我需要转到下载文件夹并打开它。
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;
    }
}