详细问题描述
[内容]
20180806本次升级后,plus.io.resolveLocalFileSystemURL IOS中 这个无法正常使用,以前是可以正常使用的,升级之后,这个选择视频 报 不允许读取,选择图片,报编码错误。
重现步骤
[步骤]
[结果]
[期望]
运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]
附件
[代码片段]
[安装包]
联系方式
[QQ]
[电话]
详细问题描述
[内容]
20180806本次升级后,plus.io.resolveLocalFileSystemURL IOS中 这个无法正常使用,以前是可以正常使用的,升级之后,这个选择视频 报 不允许读取,选择图片,报编码错误。
重现步骤
[步骤]
[结果]
[期望]
运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]
附件
[代码片段]
[安装包]
联系方式
[QQ]
[电话]
最近修改的是从相册选择视频后返回的路径,原来返回的是应用沙盒中的目录,所以可以通过plus.io.resolveLocalFileSystemURL解析。
新版本为了避免应用这类操作导致占用磁盘空间过大,调整路径为临时目录(系统在磁盘空间不足时自动清理),这类目录无法通过plus.io.resolveLocalFileSystemURL解析。
在这种场景下为何需要plus.io.resolveLocalFileSystemURL进行解析?是为了解决什么业务需求?
从示例代码中看是为了获取完整路径,实际上plus.gallery.pick返回的就是文件完整路径了,貌似没有必要通过plus.io.resolveLocalFileSystemURL解析。
解决方案:
这个问题添加参数来配置目录地址来解决,指定文件选择后保存的路径为沙盒内目录时支持通过plus.io.resolveLocalFileSystemURL解析获取文件信息。
全栈工程师 (作者) - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282
具体操作: 在 Gallery系统相册中,点击进去, 从相册找那个单选图片 --就会出现这个问题
全栈工程师 (作者) - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282
这个问题 就是最新的一次升级之后造成,
function galleryImg(){
// 从相册中选择图片
outSet('从相册中选择图片:');
plus.gallery.pick(function(path){
plus.io.resolveLocalFileSystemURL(path, function(entry) {
entry.file(function(file) {
var path = file.fullPath;
console.log(path);
});
}, function(e) {
console.log("11:"+e.message);
});
}, function(e){
outSet('取消选择图片');
}, {filter:'none',system:false});
}
这个问题新版本里还是在的。Hbuilder X 20181012版。
IOS仍然是存到tmp目录,无法读取
我也碰到这个问题了 ,请问解决了吗? IOS获取本地视频时报错,{"code":4,"message":"不允许读"}
plus.io.resolveLocalFileSystemURL(filePath, function(copyfileentry){
plus.io.resolveLocalFileSystemURL("_downloads/", function(root) {
copyfileentry.copyTo( root, newname, function( copyentry ){
}, function( ee ){
});
}, function (ex) {
});
}, function(eeeee) {
})
1***@qq.com - 90后IT男
var filepath = "file:///var/mobile/Media/DCIM/124APPLE/IMG_4156.MOV";
var fpath = decodeURI(filepath);
plus.io.resolveLocalFileSystemURL(fpath, function( entry ) {
// 可通过entry对象操作test.html文件
}, function (e) {
alert("Resolve file URL failed: " + e.message);
});
一直提示不允许读
全栈工程师 (作者)
业务场景就是:需要通过这样的方式,来获取文件的大小
2018-08-06 17:18
全栈工程师 (作者)
plus.io.resolveLocalFileSystemURL(e, function(entry) {
entry.file( function(file){
var path = file.fullPath;
var path_end = path.substring(path.indexOf("."),path.length);
console.log(path_end);
//将视频与图片分开
if(path_end==".mp4"||path_end==".MOV"){
if(file.size>26214400){//视频文件不能大于25M
mui.toast("选择视频过大,请重新选择");
return;
}else{
picarr.push(file.fullPath);
mui.openWindow("img-circle.html");
localStorage.setItem("picarr11",picarr);
localStorage.setItem("pic_flag","video");
}
}else{
2018-08-06 17:19
DCloud_App_Array
这个问题添加参数来配置目录地址来解决,指定文件选择后保存的路径为沙盒内目录时支持通过plus.io.resolveLocalFileSystemURL解析获取文件信息。
2018-08-06 19:52
一爿阳光
回复 DCloud_App_Array:即便在gallery的设置中填写了filename:'_doc',仍然返回的还是临时目录的地址
2018-08-09 08:39
DCloud_App_Array
这个问题还没有更新打包机,这周末我们会先更新到alpha打包机,到时使用HBuilder alpha或HBuilder X会解决此问题。
2018-08-09 21:49
DCloud_App_Array
此问题已修复,请更新到最新的HBuilderX。
2018-09-19 11:44
我的地盘
为什么我现在(10月3日)用最新版HBuilderX,无论是真机还是打包后,还是有这个问题呢? error log: 不允许读, file:///var/mobile/Containers/Data/Application/17997C30-375D-4233-A75B-A97E738AECE5/tmp/IMG_0630.MOV
2018-10-03 22:58
DCloud_App_Array
请提供完整的重现问题示例,建议新建一个ask问题来处理
2018-10-08 15:16