我从每个用户以base64格式存储的数据库图像中获取。 在我的HTML中,我想要这样的东西
<img src="localhost:55790/getThumbnail/1">
这将调用我的服务器返回一个将被浏览器缓存的图像,以便在下一页重新加载时不再执行该调用。 我遇到的阻塞点是在服务器端,我当前的代码无效:
[System.Web.Http.Route("getThumbnail/{userId}")]
public ActionResult GetUserThumbnail(string userId)
{
var base64Image = _userService.GetUserThumbnail(userId);
using (var imageStream = GenerateStreamFromString(base64Image))
{
return new FileStreamResult(imageStream, "image/jpeg");
}
}
private static Stream GenerateStreamFromString(string s)
{
try
{
string base64 = s.Substring(s.IndexOf(',') + 1);
base64 = base64.Trim('\0');
byte[] imageFileContent = Convert.FromBase64String(base64);
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(imageFileContent);
writer.Flush();
stream.Position = 0;
return stream;
}
catch (Exception)
{
return new MemoryStream();
}
}