w***@sina.com
w***@sina.com
  • 发布:2017-08-23 10:17
  • 更新:2020-09-04 11:32
  • 阅读:5209

选择图片上传 Not allowed to load local resource

分类:MUI

选择图片进行上传的时候,由于程序是在服务器端远程访问的。
也就是本地没有html,html都在服务器上的。
会出现以下错误
Not allowed to load local resource: file:///storage/emulated/0/DCIM/Camera/IMG_20170525_154136.jpg

经过查询,是安卓的webview安全限制导致的。
当访问的是http协议的时候,无法使用file:///方式加载本地文件。

如果是把HTML打包进apk里面,是可以访问本地文件的。求解决方法。

2017-08-23 10:17 负责人:无 分享
已邀请:
lerit666

lerit666

我遇到这个问题了,已经解决:
1.问题是因为你用的是launch_path指向的是远程http地址,不是本地的

  1. 那么,远程一个index.html中的img的src,肯定是不允许file://协议访问本地的
  2. 如果是指向本机html,就ok了
    4.如果是1这种,解决方式如下:
    思路就是有本地文件路径,就通过其他方式获取图片的base64,然后给src赋值base64,可能base64太大,可以先压缩后再取base64,核心代码如下:

// 压缩到合适大小
window.plus.zip.compressImage(
{
src: localUrl,
dst: _doc/temp.jpg,
overwrite: true,
quality: 50,
height: '300px'
},
zip => {
// 读取被压缩后的文件
window.plus.io.resolveLocalFileSystemURL(zip.target, entry => {
entry.file(file => {
const reader = new window.plus.io.FileReader()
// 读取base64
reader.readAsDataURL(file)
reader.onloadend = function(e) {
file.close()
entry.remove()
resolve(e.target.result)
}
})
})
},
() => {
resolve(null)
}
)

1***@qq.com

1***@qq.com

请问这个问题解决了吗?我遇到的问题和你的一模一样,网上基本上搜索不到相应的解决办法。

2***@qq.com

2***@qq.com

我也遇到这个问题了,请问解决了吗?

x***@163.com

x***@163.com

upload 上传图片 可是 无法渲染到页面上 本地路径已经获取了 但是结果也没有展示出图片

指尖上的代码

指尖上的代码

我最近也遇到了这个问题。。

全栈工程师

全栈工程师 - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282

这个问题很好处理

该问题目前已经被锁定, 无法添加新回复