2015-05-29 3 views
5

Ich habe versucht, Blob Inhalt (ein Bild) mit QuickBlox REST API (curl) und PHP, die Antwort Rückkehr sagt immer "size": null, und Bild ist nicht in das QuickBlox-Backend hochgeladen, dh im QuickBlox Admin-Portal "Nicht hochgeladen" angezeigt.QuickBlox - Wie REST API + PHP Blob Inhalt zu erstellen

Ich denke, vielleicht ist der Dateiname nicht ordnungsgemäß an die API übergeben, aber das QuickBlox-REST-API-Dokument ist zu einfach und ich konnte nicht herausfinden.

Unten ist mein Code, sehr geschätzt, wenn jemand, vielen Dank helfen könnte: Antwort

... 
    $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:

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 :

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

Antwort

2

Um eine Datei zu QuickBlox laden Sie 3 Anfragen zu tun haben, wie hier erwähnt:

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

  1. eine Datei
  2. Erstellen Sie eine Datei hochladen
  3. Deklarieren Datei hochgeladen

Danach ist Ihre Datei wi ll vollständig in das QuickBlox-Backend hochgeladen werden und Sie können es im Admin-Panel überprüfen

+0

Danke Igor, das funktioniert. – BBS

+0

Wie muss die Binärdatei hochgeladen werden? Das Dokument sagt, dass -F-Datei = @ user_avatar.jpeg, aber das ist der Name der Datei oder das tatsächliche Datei-Blob als Formulardaten? –

+0

Es sollte eine gängige Methode sein, um eine Datei in PHP hochzuladen. –