通过WebApi下载文件返回JSON

安德鲁

我正在使用Visual Studio 2019,WebApi项目,.NET Core 3.1

我的端点如下所示:

    [HttpGet("GetFile")]
    public async Task<HttpResponseMessage> GetFile([FromQuery] string filePath)
    {
        var bytes = await System.IO.File.ReadAllBytesAsync(filePath).ConfigureAwait(false);

        using var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(bytes),
        };

        result.Content.Headers.ContentDisposition =
            new ContentDispositionHeaderValue("attachment")
            {
                FileName = Path.GetFileName(filePath),
            };

        result.Content.Headers.ContentType =
            new MediaTypeHeaderValue("application/octet-stream");

        return result;
    }

当我到达URL时,它将以JSON返回序列化的HttpResponseMessage。
如何从端点下载文件?

罗马·马鲁西克

为了简化,您可以使用类似以下的内容:

public async Task<IActionResult> GetFile([FromQuery] string filePath)
{
   var bytes = await System.IO.File.ReadAllBytesAsync(filePath).ConfigureAwait(false);
   return File(bytes, "application/octet-stream", Path.GetFileName(filePath));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Webapi控制器下载文件-处理错误

来自分类Dev

通过Webapi控制器下载文件-处理错误

来自分类Dev

使用webapi下载文件

来自分类Dev

通过GET下载文件并返回引荐来源网址

来自分类Dev

通过Yii下载文件

来自分类Dev

通过Ajax下载文件

来自分类Dev

通过内置下载服务下载文件

来自分类Dev

PDFSharp通过文件流下载文件

来自分类Dev

使用Python通过Internet下载文件

来自分类Dev

通过Cordova中的FileTransfer下载文件

来自分类Dev

AngularJS-通过AJAX下载文件

来自分类Dev

使用Python通过SSH下载文件

来自分类Dev

如何通过Meteor下载文件?

来自分类Dev

通过FTP NOAA下载文件

来自分类Dev

从Django通过Axios下载文件

来自分类Dev

如何通过HTTP下载文件?

来自分类Dev

Firefox:通过拖放下载文件

来自分类Dev

通过Cordova中的FileTransfer下载文件

来自分类Dev

Firefox:通过拖放下载文件

来自分类Dev

通过PHP表格下载文件

来自分类Dev

AngularJS-通过AJAX下载文件

来自分类Dev

通过 Imanage NRL 下载文件

来自分类Dev

通过LWP下载文件返回错误500(由于等待时间长,可能超时)

来自分类Dev

使用WebAPI HttpResponseMessage时下载文件提示

来自分类Dev

尝试从 WebApi 下载文件时任务被取消

来自分类Dev

通过命令行通过Chrome下载文件

来自分类Dev

你如何通过代理通过蚂蚁下载文件

来自分类Dev

通过FTP下载文件失败(仅下载文件的一部分)

来自分类Dev

通过处理程序下载WebApi文件