gpt4 book ai didi

android - 使用 picasso 加载时图像未保存到存储中

转载 作者:行者123 更新时间:2023-11-29 02:26:42 26 4
gpt4 key购买 nike

我有一个应用程序使用 Django 休息框架将它的数据库与 Django 服务器同步。我能够将图像上传到服务器。

问题是图片是从另一台设备上传的还是直接通过网络应用上传的。当我尝试使用“since”过滤器重新同步时,它显示它正在调用以获取图像(不是在当前设备上制作的),但它永远不会保存。我发现修复它的唯一方法是清除 android 缓存并开始与服务器的初始同步。

我正在使用 Picasso 将图像加载到新的 Target 中:

private void saveImage(final String url){
Picasso.get().load(url).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
try {
String root = Environment.getExternalStorageDirectory().toString();
File directory = new File(root + "/instrumentImages");
if (!directory.exists()) {
directory.mkdirs();
}
String fileName = url.substring( url.lastIndexOf('/')+1, url.length() );
//String fileNameWithoutExtn = fileName.substring(0, fileName.lastIndexOf('.'));
directory = new File(directory, fileName);
FileOutputStream out = new FileOutputStream(directory);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch(Exception e){
Log.v("ActionSync", "Failed to save or load image.");
}
}

我不明白为什么在我获取 URL 时无法保存图像。如果我不清除缓存,我将获得 304 的 HTTP 状态。在 Django 测试服务器上显示:/media/instrument_image/1534360416819.jpg HTTP/1.1"200 305999举个例子。

最佳答案

权限呢?您正在尝试保存在 externalStorage 上,我遇到了同样的问题,这是一个权限问题。我首先推荐:

boolean create = File directory = new File(root + "/instrumentImages");

这是真的吗?如果没有,您可以通过手机或模拟器设置中的 Settings/Apps&Notifications/YourApp/Permissions 授予应用存储权限。

关于android - 使用 picasso 加载时图像未保存到存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com