c# - 无法通过 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));
}
解决方案
推荐阅读
- reactjs - Antd beforeUpload 对于不同的文件格式不能按预期工作
- swift - TableView NSFetchedResultsController CoreData:错误
- python - 使用 pymongo 加快写入 mongoDB
- php - 是否可以使用域 url 在流明中获取路由参数?
- xcode - react-native 应用程序启动缓慢(ios)
- android - Android Studio 模拟器不工作,立即崩溃
- python - RuntimeError:cuDNN 错误:CUDNN_STATUS_NOT_INITIALIZED 使用 pytorch
- python - 何时应该(并且不应该)指定输入和返回类型?
- html - 删除文本溢出省略号和后续文本之间的空格
- kubernetes - 尽管使用了最新的 kubectl 客户端,但未知字段“setHostnameAsFQDN”