QuickBlox - 如何使用REST API + PHP创建blob内容

时间:2015-05-29 12:01:51

标签: php rest curl quickblox

我尝试使用QuickBlox REST API(curl)和PHP创建blob内容(图像),响应返回始终显示" size":null,并且图像不会上传到QuickBlox后端,即显示"未上传"在QuickBlox管理门户网站。

我想可能文件名没有正确传递给API,但QuickBlox REST API文档太简单了,我无法弄明白。

以下是我的代码,非常感谢任何人都可以提供帮助,非常感谢:

JS:

function upload_profile_photo()
{
    var data = new FormData();
    jQuery.each(jQuery('.editableform input[name=avatar]')[0].files, function(i, file) {
        data.append('file-'+i, file);
    });
    jQuery.ajax({
        url: 'update_profile_photo.php',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(result){
            showSuccess(result);
        }
    });
}

update_profile_photo.php:

...
    $imageName = $_FILES['file-0']['tmp_name']; // Tried ['name'] also failed
    $imageType = $_FILES['file-0']['type'];
...
$response = UpdateProfileImage($imageType, $imageName);
...
function UpdateProfileImage($imageType, $imageName) 
{
    $requestBody = http_build_query(array(
                    'blob' => array(
                            'content_type' => $imageType,
                            'name' => $imageName
                            )
            ));
    ...
    $response = $this->Curl_Post($requestHeader, $requestName, $requestBody);
    return $response;

}

QuickBlox响应:

{"blob":{"id":1159901,"uid":"d328c47565614cbdaed9671ce7bc6d8000",
"content_type":"image/jpeg","name":"/tmp/phpbRqnXb","size":null, ...}

1 个答案:

答案 0 :(得分:2)

要将文件上传到QuickBlox,您必须执行此处提到的3个请求:

http://quickblox.com/developers/Content#Typical_use_.D1.81ases

  1. 创建文件
  2. 上传文件
  3. 声明上传的文件
  4. 在此之后,您的文件将完全上传到QuickBlox后端,您可以在管理面板中查看它