详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤] 执行sdk文件上传,得到绝对路径返回到vue文件中,如路径名:
var file = /Users/yoyo/Library/Developer/CoreSimulator/Devices/69323557-3357-47AC-922E-CBEE0B0DF60B/data/Containers/Data/Application/9115484E-F662-493B-B0A3-08F90A420DC3/Documents/Yoyo06_385080913/avatar/Yoyo06_db9734552d4f17200805ae50/thumb/23CD4B22C7D78E370ED2A8B8CFC4084F.jpg
在访达中看了一下,文件是真实存在的,路径表示没有问题。
第一种:读取文件方式,采用5+中的 参考文档:
// convertAbsoluteFileSystem: 将平台绝对路径转换成本地URL路径
var fz = plus.io.convertAbsoluteFileSystem(file); // 结果:null
第二种:采用pathToBase64的方式:
if(plus.os.name == 'iOS'){
file = "file://" + file; // 绝对路径,前面加file://
};
plus.io.resolveLocalFileSystemURL(file, function(entry) {
entry.file(function(file) {
var fileReader = new plus.io.FileReader()
fileReader.onload = function(data) {
console.log("读取成功:" + JSON.stringify(data));
}
fileReader.onerror = function(error) {
console.log("错误2:" + JSON.stringify(error));
}
fileReader.readAsDataURL(file)
}, function(error) {
console.log("错误3:" + JSON.stringify(error));
})
}, function(error) {
console.log("错误4:" + JSON.stringify(error)); // 一直在这一步打印结果:{"code":4,"message":"不允许读"}
})
[结果]
第一种方式,返回 null
第二种方式,返回 不允许读
[期望]
不管是第一种,还是第二种,支持读取文件
IDE运行环境说明
HBuilderX
[IDE版本号] 2.3.7.20191024
[mac版本号] 10.14.4
uni-app运行环境说明
app
项目是HBuilderX创建的
自定义组件模式
App运行环境说明
[iOS版本号] 12.4 / 13.1.3
[手机型号] iphone8
[模拟器型号] iphone6s plus
联系方式
[QQ] 398927951