file-upload - Android QBCustomObject 文件上传资源未找到错误
问题描述
我正在尝试使用 QBCustomObjectFiles 上传文件,上传开始在日志 cat 中显示进度,但文件字段为空并且响应会引发类似这样的错误 '{"errors":["The resource was not found"]}'
我在 Quickblox 管理面板上检查了我的笔记类,一切似乎都很好。我还检查了文件(方法参数中的字段),它不为空,如 log cat 中所示
public void uploadNote(Note note, File file,
QBEntityCallback<QBCustomObjectFileField> callback, QBProgressCallback
progressCallback) {
QBCustomObject customObject = new QBCustomObject();
customObject.setClassName(Note.Contract.CLASS_NAME_NOTE);
customObject.put(Note.Contract.COURSE_ID,note.getCourseId());
customObject.put(Note.Contract.CATEGORY_ID,note.getCategoryId());
customObject.put(Note.Contract.DESCRIPTION,note.getDescription());
customObject.put(Note.Contract.TOPIC,note.getTopic());
QBCustomObjectsFiles.uploadFile(file, customObject, "noteFile", progressCallback).performAsync(callback);
}
这是我的日志猫:
请求发布https://api.quickblox.com/data/Note/null/file.json 标题 QuickBlox-REST-API-Version=0.1.1 QB-SDK=Android 3.9.1 QB-Token=011a2bc55be67185d4d045d8b2d31 参数 field_name=noteFile内联发布 https://api.quickblox.com/data/Note/null/file.json?field_name=noteFile
这是回应
'{"errors":["The resource wasn't found"]}'
上传开始并显示进度,但在进度 100 之后它会抛出上述错误。
解决方案
您应该使用QBContent而不是QBCustomObjectsFiles。例子:
QBContent.uploadFileTask(file, isPublic, tags, new QBProgressCallback() {
@Override
public void onProgressUpdate(int progressValue) {
//some code for progress
}
}).performAsync(new QBEntityCallback<QBFile>() {
@Override
public void onSuccess(QBFile qbFile, Bundle params) {
//some code for success upload
}
@Override
public void onError(QBResponseException responseException) {
//some code for error upload
}
});
推荐阅读
- c# - 在二维向量空间中移动原点
- spring - 如何在无状态微服务中使用 Spring Boot oAuth2 + Azure AD?
- yii2 - Yii2 ActiveForm验证在首次加载时不使用引导模式
- javascript - 带有反应的 Css 模块
- postgresql - 有没有办法在 PostgreSQL 数据库上设置最大行数?
- javascript - 在反应本机导航中调用导航道具方法时获取“未定义不是对象”
- javascript - iframe 正在破坏浏览器的后退按钮
- php - 如何遍历 PHP 上的产品和类别列表
- amazon-web-services - 通过架构更改在 S3 和 Redshift 之间卸载和重新加载数据
- matlab - 用底函数定义周期函数