android - 如何从android中的外部存储上传文件?
问题描述
我正在使用 Retrofit 从 android 向服务器发送请求。我在上传驻留在手机外部存储中的文件时遇到问题。所有其他文件都正确。
这是我的代码:
//uri = content://com.android.externalstorage.documents/document/
9016-4EF8%3ADCIM%2FCamera%2FVidMerge1503671676945.mp4
String filepath = Environment.getExternalStorageDirectory()
+ File.separator
+ uri.getPath().split(":")[1];
//uri.getPath() = /document/9016-4EF8:DCIM/Camera/VidMerge1503671676945.mp4
//filepath = /storage/emulated/0/DCIM/Camera/VidMerge1503671676945.mp4
File file = new File(filepath);
RequestBody requestFile = RequestBody.create(MediaType.parse("*/*"), file);
MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("files", file.getName(), requestFile);
//here I got fileNotFound Exception
如何正确获取此文件?
解决方案
推荐阅读
- mysql - 有没有办法在 MariaDB 中将空字符串替换为 NULL 值?
- python - 'NoneType' 对象不可下标是什么意思
- numpy - Matplotlib Logarithmic Radar Charts - Remove all values below 0.5 and show last ytick
- sql-server - 使用 SSIS 导入 CSV 文件时,如何将丢失的日期替换为当前的 UTC 日期时间?
- python - Tensorflow 警告:在计算循环模型的梯度时,“变量不存在梯度”
- javascript - 为什么图表在第二次点击后呈现 - react-chartjs-2
- python - 如何让 Pylint 命令在 PyCharm (Python) 中运行
- sql - 第 3 行出现错误:ORA-00911:无效字符”连接表时
- java - In Java, how to restrict a user to enter only one type?
- php - Using PHP imageftbbox - adjust image size to font size output?