首页 > 解决方案 > 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 之后它会抛出上述错误。

标签: file-uploadcustom-objectquickblox-android

解决方案


您应该使用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
            }
        });

推荐阅读