// 获取应用文件路径
let context = getContext(this) as common.UIAbilityContext;
let cacheDir = context.cacheDir;
export async function PickerPhoto() {
const photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
//只能选择一张图
photoSelectOptions.maxSelectNumber = 1
// 过滤选择媒体文件类型为IMAGE
photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE
const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
let url = await photoViewPicker.select(photoSelectOptions)
if (url.photoUris.length >= 1) {
return url.photoUris[0]
} else {
return
}
}
/**
* 将相册图片写入cache
* @param photoImg
* @returns arr
*/
function fixImgFn(photoImg: string) {
let file = fs.openSync(photoImg, fs.OpenMode.READ_ONLY)
let fileId = file.fd
//定义不重复文件名
let fileName = Date.now().toString()
const ext = 'jpg'
//定义全路径
let fullPath = cacheDir + '/' + fileName + '.' + ext
fs.copyFileSync(fileId, fullPath)
return [`internal://cache/${fileName + '.' + ext}`, `${fileName + '.' + ext}`]
}
/**
* 上传文件
*/
export function upLoad(photoImg: string) {
const imgArr = fixImgFn(photoImg)
const user: User = auth.getUser() as User
let uploadConfig: request.UploadConfig = {
url: baseURL + 'member/profile/avatar',
header: {
'Authorization': `Bearer ${user.token}`,
'Content-Type': 'multipart/form-data'
},
method: 'POST',
files: [{
filename: imgArr[1],
name: 'file',
uri: imgArr[0],
type: 'jpg'
}],
data: []
}
// 将本地应用文件上传至网络服务器
try {
request.uploadFile(context, uploadConfig)
.then((uploadTask: request.UploadTask) => {
uploadTask.on('complete', (taskStates: Array<request.TaskState>) => {
for (let i = 0; i < taskStates.length; i++) {
console.info(`apple upload complete taskState: ${JSON.stringify(taskStates[i])}`);
}
});
})
.catch((err: BusinessError) => {
console.error(`apple Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
})
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`apple Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
}
}
鸿蒙完成图片上传
最新推荐文章于 2025-08-12 13:06:44 发布
662

被折叠的 条评论
为什么被折叠?



