0

image/png を返したい GET エンドポイントを持つ最小限の API ( Project Sdk="Microsoft.NET.Sdk.Web" ) アプリがあります。

エンドポイントは次のとおりです。

app.MapGet("/text2img/{inputText}", (string inputText) => {
  var fileBytes = new ByteArrayContent(text2img(inputText).ToByteArray());
  var mimeType="image/png"; 
  var fileBytesArray = fileBytes.ReadAsByteArrayAsync().Result;
  return Results.File(new Microsoft.AspNetCore.Mvc.FileContentResult(fileBytesArray, mimeType).FileContents);
});

そして、png 画像の正しいバイトを返しますが、コンテンツ タイプはオクテット ストリームです。

HTTP/1.1 200 OK
Content-Length: 24975
Content-Type: application/octet-stream
Date: Fri, 22 Oct 2021 16:29:49 GMT
Server: Kestrel

正しい Content-type を返すにはどうすればよいですか?

4

1 に答える 1

1

Results.File(少なくとも最新バージョンでは)contentTypeバイト配列とコンテンツタイプを渡すだけのパラメータがあります:

app.MapGet("/img", () =>
{
    var mimeType = "image/png";
    var bytes = ...
    return Results.File(bytes, contentType: mimeType);
});
于 2021-10-22T17:10:52.637 に答える