Commit 7c27b113 authored by yinjiacheng's avatar yinjiacheng

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

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