使用Guzzle将图像文件上传到Strapi CMS API



我正在尝试使用Strapi CMS的API和Laravel&狂饮每当我进行POST请求时,简单的数据,如名称、描述等都会被完美地发布,只有图像没有。甚至没有任何错误可以采取行动,只是";200成功";。

我做错了吗?

这是我尝试过的:到目前为止,我的处理者:

$this->processStrapiProductCategory([
'multipart' => [
[
'name' => 'ImageCover',
'contents' => fopen('storage/app/' . $sliderImageInternalUrl, 'r' ),
],
],
'json' => [
'TextCover' => $sliderText,
'Description' => $categoryDescription,
'Name' => $categoryName,
'Slug' => $categorySlug,
],
]);

狂饮:

private function processStrapiProductCategory($options): void
{
$client = new GuzzleHttpClient(['verify' => false]);
try {
$response = $client->request('POST', '192.168.1.109:1337/product-categories/', $options);
dump('StatusCode of guzzle request: ' . $response->getStatusCode());
} catch (Exception $e) {
dump('Guzzle error: ' . $e->getMessage());
}
}

这是当您看到多部分的guzzle文档时会发现的

此选项不能与body、form_params或json 一起使用

将其更改为低于

[
'multipart' => [
[
'name' => 'ImageCover',
'contents' => fopen('storage/app/' . $sliderImageInternalUrl, 'r' ),
],
[
'name' => 'data',
'contents' => json_encode(
[
'TextCover' => $sliderText,
'Description' => $categoryDescription,
'Name' => $categoryName,
'Slug' => $categorySlug,
]
),
]
]
]

最新更新