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如何从网络下载文件到本地
323浏览 • 1回复 待解决
HarmonyOS 如何下载文件到本地
170浏览 • 1回复 待解决
HarmonyOS 下载文件的临时目录迁移到相册目录
179浏览 • 1回复 待解决
HarmonyOS 下载文件到内部存储报错:401
288浏览 • 1回复 待解决
HarmonyOS 下载文件到指定文件夹
203浏览 • 1回复 待解决
HarmonyOS 如何下载pdf文件到公共目录,使用户可以看到
69浏览 • 1回复 待解决
应用从远程服务器下载文件的下载路径
2249浏览 • 1回复 待解决
HarmonyOS 下载文件并保存到指定目录
331浏览 • 1回复 待解决
HarmonyOS 通过网络下载的文件,能否写入系统Download目录
201浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在鸿蒙应用中下载文件时,如何从响应头信息中正确获取下载文件名并保存到本地?
180浏览 • 0回复 待解决
HarmonyOS下载文件报错
701浏览 • 1回复 待解决
如何使用接口下载文件
2268浏览 • 1回复 待解决
是否支持iframe下载文件?
960浏览 • 1回复 待解决
HarmonyOS 下载文件相关的demo
38浏览 • 1回复 待解决
如何查看HarmonyOS下载文件
502浏览 • 1回复 待解决
HarmonyOS下载文件失败返回
681浏览 • 1回复 待解决
HarmonyOS axios下载文件问题
61浏览 • 1回复 待解决
request下载文件不能覆盖现有文件
1964浏览 • 1回复 待解决
HarmonyOS 如何引导用户从浏览器打开应用商店下载APP
311浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何读取和复制下载目录下的文件到沙箱目录?
201浏览 • 1回复 待解决
HarmonyOS下载文件到沙盒时报错,13400001 : file operation error
2346浏览 • 1回复 待解决
使用request下载文件的方式
988浏览 • 1回复 待解决
下载文件打印乱码如何修改
506浏览 • 1回复 待解决
HarmonyOS 如何监听下载文件的进度
349浏览 • 1回复 待解决
HarmonyOS web下载文件点击无反应
360浏览 • 1回复 待解决
参考: