1***@163.com
1***@163.com
  • 发布:2023-03-06 19:33
  • 更新:2023-09-26 15:31
  • 阅读:7743

【报Bug】安卓上传文件,上传不上去content://com.tencent.mtt.fileprovider/QQBrowser

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: 华为畅享20e

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: CLI

CLI版本号: 2.0.2-3070320230222001

操作步骤:

安卓这个选择文件,选择完成获得content://com.tencent.mtt.fileprovider/QQBrowser/BaiduNetdisk/2022/%E6%8A%96%E9%9F%B3%E5%8D%96%E5%86%99%E7%9C%9F%E6%9C%88%E5%85%A52%E4%B8%87/5_%E8%81%8A%E5%A4%A9%E8%AF%9D%E6%9C%AF(1).docx,

上传不上去

上传的filePath就是上面的地址

另外一个上传文件是可以的,个人感觉这个地址是腾讯com.tencent.mtt,但是又不知道怎么解决,插件有无法隐藏那个入口

预期结果:

可以 上传成功,

实际结果:

上传不上去

bug描述:

安卓这个选择文件,选择完成获得content://com.tencent.mtt.fileprovider/QQBrowser/BaiduNetdisk/2022/%E6%8A%96%E9%9F%B3%E5%8D%96%E5%86%99%E7%9C%9F%E6%9C%88%E5%85%A52%E4%B8%87/5_%E8%81%8A%E5%A4%A9%E8%AF%9D%E6%9C%AF(1).docx,

上传不上去

上传的filePath就是上面的地址

另外一个上传文件是可以的,个人感觉这个地址是腾讯com.tencent.mtt,但是又不知道怎么解决,插件有无法隐藏那个入口

2023-03-06 19:33 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

content://文件,转存为app内部路径file://

victor_Leem

victor_Leem

怎么转
content://文件,转存为app内部路径file://

苏陌

苏陌

你可以试一下

//安卓  
// contentUri 是 content:// 格式的文件路径  
let contentUri = 'content://com.example.provider/files/yourfile.pdf';  

// 使用 Android 的内容解析器获取文件的实际路径  
plus.android.importClass("android.content.ContentResolver");  
plus.android.importClass("android.database.Cursor");  
plus.android.importClass("android.net.Uri");  
let resolver = plus.android.runtimeMainActivity().getContentResolver();  
let uri = Uri.parse(contentUri);  
let cursor = resolver.query(uri, null, null, null, null);  

if (cursor != null) {  
  cursor.moveToFirst();  
  let columnIndex = cursor.getColumnIndex("_data");  
  if (columnIndex != -1) {  
    // 获取实际文件路径  
    let filePath = cursor.getString(columnIndex);  

    // 构建 file:// 格式的应用内部路径  
    let appInternalFilePath = 'file://' + filePath;  
    console.log('应用内部路径:', appInternalFilePath);  
  }  
  cursor.close();  
} else {  
  console.error('无法获取文件路径');  
}  
//苹果  
// contentUri 是 content:// 格式的文件路径  
let contentUri = 'content://com.example.provider/files/yourfile.pdf';  

// 使用 plus.ios.invoke 调用原生方法进行路径转换  
plus.ios.invoke('YourNativeModule', 'convertContentUriToFilePath', [contentUri], {  
  success(result) {  
    // result 包含了转换后的应用内部路径  
    let appInternalFilePath = 'file://' + result;  
    console.log('应用内部路径:', appInternalFilePath);  
  },  
  fail(error) {  
    console.error('转换路径失败:', error);  
  }  
});  

要回复问题请先登录注册