详细的 业务为 我需要在服务器下载一段音频文件 通过downloadFile 下载后 官方的意思是通过 uni.saveFile 来保存 这个其实就是 放在了内部存储\Android\data\io.dcloud.HBuilder\apps\HBuilder\doc\uniapp_save 里面 和沙盒的位置不一样而已,并且通过uni.removeSavedFile 删除掉,我想在的意思是 当下在成功后 自己可以自定一个内部储存 文件夹来放置 我下载的音频文件,我也看了 H5+API 也没有发现方法可以打开手机的目录进行存放。plus.io.requestFileSystem 这个方法也没有走通,不知道是我的方法不对还是怎么。
求解决
- 发布:2020-11-19 11:48
- 更新:2024-07-28 21:53
- 阅读:16878
可以直接使用plus.download 相关接口下载到指定目录
uni. downloadFile 的代码也是开源的,其内部就是使用 plus的接口实现,可以去看
也可以使用 plus.io 相关接口移动文件
uni.saveFile 的代码也是开源的,其内部就是使用 plus的接口实现,可以去看
-
-
易软 (作者)
而且 在下载任务接口里面的filename 属性用来设置保存路径 只给了应用目录的方法如果要存公共目录呢,比如我要存在 内部存储>Android下面呢或者 内部存储>Android>data 下面呢。而且是Android10 能行吗?
2020-11-20 09:58
-
-
解决了么
var url = this.URL+this.classDetial.adjunct
let dtask = plus.downloader.createDownload(url, {
//本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,就是用户文件管理器能看到的了,之后我创建微垠作为文件夹,后缀是用于文件命名和格式修改,大家可以使用变量。
filename: "file://storage/emulated/0/APP/" + this.classDetial.adjunctName //利用保存路径,实现下载文件的重命名
},
function(d, status) {
//d为下载的文件对象
// console.log('d为下载的文件对象', d)
// console.log('status为下载的文件对象', status)
if (status === 200) {
console.log('下载成功', d.filename)
//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
console.log('fileSaveUrl',fileSaveUrl)
// plus.runtime.openFile(d.filename); //选择软件打开文件
uni.openDocument({
filePath: d.filename,
});
} else {
//下载失败
plus.downloader.clear(); //清除下载任务
}
})
dtask.start();
这个保存的目录也找不到啊
尼卡路西
没错,是为了挣钱,这算是官方论坛吧?一堆破问题,也没见几个是官方来回答的,还维护不?天坑
2022-08-25 19:51