首页 > 解决方案 > 无法通过 Swagger 下载文档

问题描述

我已经实现了下载文件 API,我正在尝试在 Swagger 中对其进行测试。Swagger 返回一个下载文件链接,但如果我从此链接下载文件,则文件无效。并且这个大小应该超过了(例如,通过 Swagger 下载的图像重量为 10 KB,重量为 18 KB)。同时,该文件在浏览器的网络预览中正确显示,如果我只是通过API方法链接下载文件(不使用Swagger),它也可以正确下载。告诉我我在 Swagger 上做错了什么?

我用来下载文件的代码:

public static class HttpHelper
{
    public static HttpResponseMessage DocumentFileInfoModelToHttpResponseMessage(DocumentFileInfoModel model)
    {
        var message = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(model.Content)
        };

        message.Content.Headers.ContentDisposition =
            new ContentDispositionHeaderValue("attachment") {FileName = model.Name};
        message.Content.Headers.ContentType = new MediaTypeHeaderValue(model.ContentType);
        message.Content.Headers.ContentLength = model.Content.LongLength;

        return message;
    }
}

    [HttpGet]
    [AllowAnonymous]
    [SwaggerOperation(Tags = new[] {Tag})]
    public async Task<IHttpActionResult> DownloadDocument(CancellationToken cancellationToken,
        [FromUri] DocumentType documentType, [FromUri] string name = null)
    {
        var model = new DownloadDocumentModel
        {
            DocumentType = documentType,
            DocumentName = name
        };

        var result = GetDocumentFileInfo(model);

        return ResponseMessage(HttpHelper.DocumentFileInfoModelToHttpResponseMessage(result));
    }

标签: c#webswaggerdownload

解决方案


推荐阅读