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, ...}
Danke Igor, das funktioniert. – BBS
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? –
Es sollte eine gängige Methode sein, um eine Datei in PHP hochzuladen. –