HarmonyOS 用户从APP下载文件到Download目录,正确的流程
下载文件到Download目录,是先去获取download目录还是先去下载文件,在先下载文件到缓存目录之后,复制到Download目录,但是提示copy file failed Operation not permitted,我需要去申请什么权限吗
// 源码如下
Button("文件下载")
.fontWeight(FontWeight.Bold)
.onClick(()=>{
try {
let uri: string = '';
// 请确保 getContext(this) 返回结果为 UIAbilityContext
let context = getContext(this) as common.UIAbilityContext;
let localFilePath = getContext(this).tempDir + "/test.png"
request.downloadFile(context, {
url: 'http://192.168.70.138:7001/downloadFile',
filePath: localFilePath
}).then((downloadTask: request.DownloadTask) => {
downloadTask.on('complete', () => {
Log.info('download complete');
const documentViewPicker = new picker.DocumentViewPicker(context);
const documentSaveOptions = new picker.DocumentSaveOptions();
documentSaveOptions.pickerMode = picker.DocumentPickerMode.DOWNLOAD;
documentViewPicker.save(documentSaveOptions ).then((documentSaveResult: Array<string>) => {
uri = documentSaveResult[0];
Log.info('路径:' + uri);
// 将选中文件copy至cache目录下,文件名为cacheFile,这需要ohos.permission.READ_MEDIA与ohos.permission.WRITE_MEDIA权限
try {
let srcFile = fs.openSync(localFilePath);
let dstFile = fs.openSync(uri+ 'test.png', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.copyFileSync(srcFile.fd, dstFile.fd);
fs.closeSync(srcFile);
fs.closeSync(dstFile);
} catch (e) {
Log.info(`copy file failed ${e.message}`);
return;
}
console.info('documentViewPicker.save succeed and uri is:' + uri);
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
})
})
}).catch((err: BusinessError) => {
Log.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
let err: BusinessError = error as BusinessError;
Log.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`);
}
})
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS DocumentViewPicker如何从网络下载文件到本地
50浏览 • 1回复 待解决
HarmonyOS 如何下载文件到本地
32浏览 • 1回复 待解决
HarmonyOS 通过网络下载的文件,能否写入系统Download目录
35浏览 • 1回复 待解决
HarmonyOS 下载文件并保存到指定目录
96浏览 • 1回复 待解决
应用从远程服务器下载文件的下载路径
2084浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在鸿蒙应用中下载文件时,如何从响应头信息中正确获取下载文件名并保存到本地?
124浏览 • 0回复 待解决
HarmonyOS下载文件报错
523浏览 • 1回复 待解决
如何查看HarmonyOS下载文件
363浏览 • 1回复 待解决
HarmonyOS下载文件失败返回
511浏览 • 1回复 待解决
HarmonyOS下载文件到沙盒时报错,13400001 : file operation error
2017浏览 • 1回复 待解决
HarmonyOS 如何保存一张远程图片到本地文件的公共目录的DOWNLOAD文件夹
46浏览 • 1回复 待解决
是否支持iframe下载文件?
806浏览 • 1回复 待解决
如何使用接口下载文件
2124浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何读取和复制下载目录下的文件到沙箱目录?
87浏览 • 1回复 待解决
HarmonyOS 如何监听下载文件的进度
72浏览 • 1回复 待解决
使用request下载文件的方式
830浏览 • 1回复 待解决
HarmonyOS 如何引导用户从浏览器打开应用商店下载APP
44浏览 • 1回复 待解决
request下载文件不能覆盖现有文件
1845浏览 • 1回复 待解决
HarmonyOS 公共目录Document、Download可以直接新建目录、新建文件、编辑文件了?
84浏览 • 1回复 待解决
HarmonyOS 使用http下载文件异常
41浏览 • 1回复 待解决
HarmonyOS web下载文件点击无反应
114浏览 • 1回复 待解决
下载文件打印乱码如何修改
387浏览 • 1回复 待解决
HarmonyOS 使用ArkWeb下载文件时,保存文件失败
25浏览 • 1回复 待解决
HarmonyOS使用@ohos.request下载文件功能迁移至子线程后下载文件大小为0
404浏览 • 1回复 待解决
HarmonyOS http请求下载文件报错2300023
49浏览 • 1回复 待解决
参考: