2015-05-29 75 views
5

我試圖用QuickBlox REST API(curl)和PHP創建blob內容(圖像),響應返回時總是說「大小」:null,圖像是未上傳到QuickBlox後端,即在QuickBlox管理門戶中顯示「未上傳」。QuickBlox - 如何使用REST API + PHP創建blob內容

我想也許文件名沒有正確地傳遞給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, ...} 

回答

2

將文件上傳到QuickBlox你必須做3個請求這裏提到:

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

  1. 創建一個文件
  2. 上傳文件
  3. 聲明文件上傳

在此之後您的文件wi將完全上傳到QuickBlox後端,您將能夠在管理面板中檢查它

+0

謝謝伊戈爾,這工作。 – BBS

+0

如何上傳二進制文件?該文檔說-F [email protected]_avatar.jpeg,但這是文件的名稱或實際文件blob作爲表單數據? –

+0

這應該是一個常見的方式上傳文件在PHP –