【发布时间】:2018-08-16 21:16:44
【问题描述】:
我有一个使用 Django rest 框架将其数据库与 Django 服务器同步的应用程序。我可以将图像上传到服务器。
问题是图像是从其他设备上传还是直接通过网络应用上传。当我尝试使用“since”过滤器重新同步时,它显示它正在调用获取图像(不是在当前设备上制作的),但它永远不会被保存。我发现修复它的唯一方法是清除 android 缓存并开始与服务器的初始同步。
我正在使用 Picasso 将图像加载到新目标中:
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 举个例子。
【问题讨论】:
标签: android django django-rest-framework synchronization picasso