w00*_*977 5 c# asp.net-web-api
我有一个网络服务方法,如下所示:
[HttpGet("{id}")]
public ActionResult<byte[]> Get(Guid id)
{
var files = Directory.GetFiles(@"Pictures\");
foreach (var file in files)
{
if (file.Contains(id.ToString()))
{
return System.IO.File.ReadAllBytes(file);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这是客户端代码,它肯定可以工作,即它正在调用 Web 服务并且 Web 服务正在返回图像:
var response2 = await client.GetAsync("http://localhost:59999/api/Images/5c60f693-bef5-e011-a485-80ee7300c692");
byte[] image2 = await response2.Content.ReadAsByteArrayAsync(); ///sf/ask/2743301291/
System.IO.File.WriteAllBytes("image.jpg", image2);
Run Code Online (Sandbox Code Playgroud)
当我尝试在画图中打开 image.jpg 时;它说这是一个无效文件。问题是什么?
如果您想返回文件,请不要byte[]从操作中返回,因为它会被base64编码。您可以base64在客户端上解码字符串,或者更好地使用File实际方法
[HttpGet("{id}")]
public ActionResult Get(Guid id)
{
var files = Directory.GetFiles(@"Pictures\");
foreach (var file in files)
{
if (file.Contains(id.ToString()))
{
return File(System.IO.File.ReadAllBytes(file), "image/jpeg");
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2959 次 |
| 最近记录: |