Commit 7c27b113 authored by yinjiacheng's avatar yinjiacheng

update 图片服务 图片上传成功或失败后删除临时文件

parent 5960d96c
...@@ -2,6 +2,7 @@ package com.yidian.common.services ...@@ -2,6 +2,7 @@ package com.yidian.common.services
import android.app.Activity import android.app.Activity
import android.net.Uri import android.net.Uri
import android.os.Build
import android.util.Base64 import android.util.Base64
import com.google.gson.Gson import com.google.gson.Gson
import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.PictureSelector
...@@ -88,6 +89,7 @@ class ImageService : ZapService() { ...@@ -88,6 +89,7 @@ class ImageService : ZapService() {
/** /**
* 自定义原图路径 * 自定义原图路径
* 适配Android10
*/ */
private val picOriginalPath by lazy { YdBaseApplication.context.externalCacheDir?.absolutePath + "/picture_selector_original/" } private val picOriginalPath by lazy { YdBaseApplication.context.externalCacheDir?.absolutePath + "/picture_selector_original/" }
...@@ -114,7 +116,7 @@ class ImageService : ZapService() { ...@@ -114,7 +116,7 @@ class ImageService : ZapService() {
} }
override fun onExit() { override fun onExit() {
clearCache() PictureCacheManager.deleteAllCacheDirRefreshFile(YdBaseApplication.context)
} }
override fun onInit() { override fun onInit() {
...@@ -236,9 +238,14 @@ class ImageService : ZapService() { ...@@ -236,9 +238,14 @@ class ImageService : ZapService() {
} }
} }
uploadPic?.let { uploadPic?.let {
// 将图片拷贝到沙盒 val file = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
fileCopy(it.data.path, picOriginalPath + it.data.fileName) // 适配Android10
val file = File(picOriginalPath + it.data.fileName) // 将图片拷贝到沙盒
fileCopy(it.data.path, picOriginalPath + it.data.fileName)
File(picOriginalPath + it.data.fileName)
} else {
File(it.data.realPath)
}
if (!file.exists()) { if (!file.exists()) {
resolver.fail(CODE_FILE_NOT_EXIST, "file not exist", "文件不存在") resolver.fail(CODE_FILE_NOT_EXIST, "file not exist", "文件不存在")
return return
...@@ -262,10 +269,14 @@ class ImageService : ZapService() { ...@@ -262,10 +269,14 @@ class ImageService : ZapService() {
override fun onTaskSuccess(bucket: String?, objectKey: String?) { override fun onTaskSuccess(bucket: String?, objectKey: String?) {
resolver.success(JSONObject(gson.toJson(UploadImageBean(id, "${bucket}/${objectKey}")))) resolver.success(JSONObject(gson.toJson(UploadImageBean(id, "${bucket}/${objectKey}"))))
// 删除临时文件
clearCache(picOriginalPath + it.data.fileName, it.data.compressPath)
} }
override fun onTaskFailure(statesCode: Int, message: String?) { override fun onTaskFailure(statesCode: Int, message: String?) {
resolver.fail(CODE_FILE_UPLOAD_FAIL, "upload failed", "上传失败") resolver.fail(CODE_FILE_UPLOAD_FAIL, "upload failed", "上传失败")
// 删除临时文件
clearCache(picOriginalPath + it.data.fileName, it.data.compressPath)
} }
}) })
} ?: resolver.fail(CODE_FILE_NOT_EXIST, "file not exist", "文件不存在") } ?: resolver.fail(CODE_FILE_NOT_EXIST, "file not exist", "文件不存在")
...@@ -273,6 +284,7 @@ class ImageService : ZapService() { ...@@ -273,6 +284,7 @@ class ImageService : ZapService() {
/** /**
* 文件拷贝 * 文件拷贝
* 适配Android10
* @param fromUriStr 源文件uri * @param fromUriStr 源文件uri
* @param targetPath 目标文件全路径 * @param targetPath 目标文件全路径
*/ */
...@@ -286,10 +298,12 @@ class ImageService : ZapService() { ...@@ -286,10 +298,12 @@ class ImageService : ZapService() {
/** /**
* 清理缓存 * 清理缓存
* @param originalPath 拷贝到沙盒的原图路径
* @param compressPath 压缩后的路径
*/ */
private fun clearCache() { private fun clearCache(originalPath: String, compressPath: String) {
PictureCacheManager.deleteAllCacheDirRefreshFile(YdBaseApplication.context) File(originalPath).apply { if (exists()) delete() }
File(picOriginalPath).delete() File(compressPath).apply { if (exists()) delete() }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment