选择文件, 上传

- 发布:2023-02-06 12:26
- 更新:2023-02-07 13:54
- 阅读:405
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: 红米note7
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
选择文件可以上传
选择文件可以上传
实际结果:
选择文件无法上传
选择文件无法上传
bug描述:
文件上传使用插件市场 i-file 插件. 之前是好的
插件原理是 在 webview中使用 input type=file
因为hbuilder现在云端打包强制要求升级hx, 所以跟着升级
升级之后
在 targetVersion=30, android10 的环境下无法上传文件(怀疑无法读取到文件)
而targetVersion降级到 26 就可以, 但是因为市场上已经是30, 降级需要用户手动安装app, 运营难度较大

Queal (作者) - Queal
是否应该考虑 android10之上的 scope storage 特性, 在webview showFileChooser(禁止从文件管理里选择文件, 因为选择了, 程序也读不到)的时候, 做一个适配改动? 建议官方考虑, 并且给出回复, 谢谢

Queal (作者) - Queal
提交了demo, 目前反编译查看 uni 基座代码, 里面 有一个 FileChooseDialog, 里面写死了, 官方有人能 confirm 一下这个问题吗?

Queal (作者) - Queal
再提供新的线索, targetSdkVersion30以上, fiddler抓包, 请求都没发出来, 建议往 formdata 使用 js 的file 对象, 就是 uri这块查询

可以看下这篇文章 https://ask.dcloud.net.cn/article/36199 猜测你选择的图片属于非公共区域的图片 所以图片读取失败了
-
Queal (作者)
选的pdf上传, 所以有什么办法解法呢, 看基座里设置 chromClient的时候, 里面重写了一个FileChooser, FileChooser里一种3个, 同时会加载所有支持 accpetTypes的组件, 问题就是出在 .dc.fileprovider这里(这里是不是判断一下android版本, 如果是10以上, 就不提供), 这里读的时候没考虑 scope storage的实现, 你们看下普通的浏览器, 现在对input[type=file] 是只有 GET_CONTENT 实现
2023-02-07 09:19
-
-
Queal (作者)
用的方案 webview input[type=file], 跟plus没关系( https://ask.dcloud.net.cn/article/36199 ) 看过了
2023-02-07 10:27
-
-
-
-
Queal (作者)
回复 DCloud_Android_ST: 你就放downloads目录, 从 fileChooser的第三个菜单按钮'文件管理' 这个选项里进去找文件, 上传就会失败, 第二个菜单按钮'文件'选是没问题的, 不是图片, 是文件, 图片直接走相册那个是没问题的
2023-02-07 13:46