QuickBlox - 如何使用 REST API + PHP 创建 blob 内容
QuickBlox - How to use REST API + PHP to create blob content
我尝试使用 QuickBlox REST API(curl) 和 PHP 创建 blob 内容(图像),响应 return 总是说 "size":null,图像未上传到 QuickBlox 后端,即在 QuickBlox 管理门户中显示 "Not uploaded"。
我想也许文件名没有正确传递给 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, ...}
要将文件上传到 QuickBlox,您必须按照此处所述执行 3 个请求:
http://quickblox.com/developers/Content#Typical_use_.D1.81ases
- 创建文件
- 上传文件
- 正在声明文件上传
在此之后,您的文件将完全上传到 QuickBlox 后端,您将能够在管理面板中查看它
我尝试使用 QuickBlox REST API(curl) 和 PHP 创建 blob 内容(图像),响应 return 总是说 "size":null,图像未上传到 QuickBlox 后端,即在 QuickBlox 管理门户中显示 "Not uploaded"。
我想也许文件名没有正确传递给 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, ...}
要将文件上传到 QuickBlox,您必须按照此处所述执行 3 个请求:
http://quickblox.com/developers/Content#Typical_use_.D1.81ases
- 创建文件
- 上传文件
- 正在声明文件上传
在此之后,您的文件将完全上传到 QuickBlox 后端,您将能够在管理面板中查看它