Как отправить PUT запрос с файлом в Guzzle. На curl все должно выполняться таким запросом:
$ curl -i -XPUT {storage_url}/new_container/new_object \ -H "X-Auth-Token: $ \ -H "X-Delete-After: 100" \ -T "./example.gz"
Как выполнить этот запрос в Guzzle?
Пробовал
$fp = fopen($localFilePath,'r');
$client->request('PUT', $url, [
'headers' => [
'X-Auth-Token'=>$token,
'X-Delete-After'=>100,
],
'curl' => [
CURLOPT_INFILE => $fp,
CURLOPT_FILESIZE => filesize($localFilePath),
]
]);
fclose($fp);
Файл создается, но его размер 0 байт, т.е. запрос сервер принял и обработал, но содержимое файла не отправлено.
У меня работает так:
сначала инициализирую Guzzle таким способом
use GuzzleHttp\Client;
class Guzzle extends Client {
public function init()
{
return new Client([
'base_uri'=>'https://some_uri/api/',
'headers'=>[
'Authorization'=>'Token 000000-0000-0000-000000',
'X-Vendor-ID'=>'API'
]
]);
}
}
$this->guzzle = Guzzle::init();
потом делаю запрос в Guzzle с отправкой файла
$response = $this->guzzle->request('PUT', 'files', ['multipart'=>[[ /*files прибавляется к base_uri т.е. адрес запроса = https://some_uri/api/files*/
'name'=>$file_name,
'contents'=>fopen($file,'r')
]]]);
В параметр body передаем дескриптор файла
$fp = fopen($localFilePath,'r');
$client->request('PUT', $url, [
'headers' => [
'X-Auth-Token'=>$token,
'X-Delete-After'=>100,
],
'body' => $fp,
]);
fclose($fp);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день, я новичок, у меня есть код, который подключается к LDAP и берет оттуда данные и отображает в браузереНо как только натыкается на русские...
Есть модели StickerPack и StickerМежду ними связь один ко многим