问题
七牛云 上传 文件 file is empty
详细问题
笔者进行Android 开发,使用URI上传文件,上传核心代码
具体报错信息
{ver:8.7.0,ResponseInfo:1709276329412131,status:-6, reqId:, xlog:null, xvia:null, host:null, time:1709276329,error:file is empty}
解决方案
将第一个参数由String类型修改为URI类型,增加第二个参数getContentResolver()
即将
修改为
问题产生原因
使用String.valueOf(selectedImageUri)将选定的图像URI转换为字符串时。这样做只是将URI对象转换为其字符串表示形式,并没有提供文件内容。因此,uploadManager.put()方法无法正常工作,因为它期望传递文件内容而不是文件路径。
问题解决原因
使用getContentResolver().openInputStream(selectedImageUri)来获取URI对应的输入流,这样可以获取到文件的实际内容。
对于开发者而言,由于uploadManager.put(selectedImageUri, getContentResolver(), key, token) 已经考虑到了从给定的 selectedImageUri 获取文件内容的逻辑,而不需要开发者显式地打开输入流。这是由于 uploadManager.put() 方法的实现内部已经处理了从 ContentResolver 中获取文件内容的操作。
参考文献
笔者提交工单,与七牛云Android开发工程师讨论
产生原因与解释原因部分 部分内容参考chatgpt
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈