我有一个Web服务方法,如下所示:
[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;
}
这是客户端代码,它肯定可以正常工作,即它正在调用Web服务,而Web服务正在返回图像:
var response2 = await client.GetAsync("http://localhost:59999/api/Images/5c60f693-bef5-e011-a485-80ee7300c692");
byte[] image2 = await response2.Content.ReadAsByteArrayAsync(); //https://stackoverflow.com/questions/39190018/how-to-get-object-using-httpclient-with-response-ok-in-web-api
System.IO.File.WriteAllBytes("image.jpg", image2);
当我尝试在Paint中打开image.jpg时;它说这是一个无效的文件。有什么问题吗?
答案 0 :(得分:4)
如果您要返回文件,请不要从操作中返回@objc func backAction(sender:UIButton) {
// Some action
}
,因为它已被byte[]
编码。您可以在客户端上解码base64
字符串,或者最好使用实际使用的base64
方法
File