我已经实现了下载文件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));
}