简书链接:androidglide无法加载自己写的后台网络框架图片但是打开浏览器能显示问题分析解决
文章字数:276,阅读全文大约需要1分钟

1
2
3
4
.load(imageUrl) // 可以加载本地或网络图片
//.load(position == 0 ? "https://zhengxin-pub.cdn.bcebos.com/logopic/3xxx.jpg" : imageUrl) // 可以加载本地或网络图片
//.load(imageUrl) // 可以加载本地或网络图片
.into(photoView);

我测试网络上有文件名的发现可以所以找到原因了

提示

1
2
setDataSourceCallback failed status=0x800000
VideoDecoder**

f329cf8d73cd3c19b14df91a9662452e.png
由于某些原因后端是文件存储在数据库的,但是没办法,爱屋及乌我也只能这么搞,我后端的逻辑是这么写的,但是遇到个问题

1
2
3
4
5
6
filename = dataTable.Rows[0]["ImgName"].ToString() ?? "";
byte[] pictureBytes = (byte[])dataTable.Rows[0]["ImgData"];
return new FileContentResult(pictureBytes, "image/jpeg") {
FileDownloadName = filename,
EnableRangeProcessing = true // 支持断点续传,这对大图片加载有用
};

问题出在了glide身上,但是为了让他兼容,于是我加了个文件名传递
/ccessFAIPic/?id=146

1
2
3
[HttpGet("accessFAIPic")]
public IActionResult GetPicture(int id, bool onlyCheck, string checkID = "0", string filename = "")
{

/ccessFAIPic/a.jpg?id=146
改为如下

1
2
3
[HttpGet("accessFAIPic/{filename?}")]
public IActionResult GetPicture(int id, bool onlyCheck, string checkID = "0", string filename = "")
{