Intereting Posts
iconv_strlen вызывает таймаут выполнения, запущенный на MAMP Force-Download с php на Amazon S3 Простой html dom file_get_html не работает – есть ли какое-либо обходное решение? PHP Regex для удаления http: // из строки PHP вставляет несколько флажков и массивов текстовых полей в базу данных MySQL Получите повторные совпадения с preg_match_all () Как вы показываете свой исходный код php с подсветкой или источником просмотра? Складывание и суммирование массивов PHP Сессии PHP в кластере балансировки нагрузки – как? Cookie не удалит Почему эта переменная POST отправляется через AJAX Null? (JQuery / PHP) # 1075 – неправильное определение таблицы; может быть только один автоматический столбец, и он должен быть определен как ключ Спецификация на странице PHP, созданной WordPress извлекать и вставлять изображение в базу данных с помощью php Laravel: Общая ошибка: 1615 Подготовленное заявление нужно переплатить

Как установить тип контента с помощью Zend_Http_Client в PUT?

Привет, я рефакторинг после вызова curl на вызов Zend_Http_Client. Это отправит запрос PUT в базу данных CouchDB с данным файлом и установит правильный Content-Type для _attachement.

exec( 'curl -s -X PUT ' . $url ' . '--data-binary @\'' . $filePath . '\' -H "Content-Type: ' . $mimeType . '"', $resultJson, $returnCode ); 

Рефакторинг для Zend_Http_Client У меня есть следующее:

 $adapter = new Zend_Http_Client_Adapter_Curl(); $client = new Zend_Http_Client(); $client->setAdapter($adapter); $client->setUri($url); $client->setRawData($filePath); $adapter->setCurlOption('CURLOPT_HEADER', "Content-Type: $mimeType"); $response = $client->request('PUT'); 

Это вызывает следующее исключение: Неизвестная или ошибочная опция cURL 'CURLOPT_HEADER'

Как правильно установить Content-Type?

Вместо того, чтобы использовать:

 $client->setRawData($filePath); $adapter->setCurlOption('CURLOPT_HEADER', "Content-Type: $mimeType"); 

Мне пришлось использовать:

 $client->setRawData(file_get_contents($filePath)); $client->setHeaders('Content-Type', $mimeType); 

По-видимому, вы не можете установить некоторые из CURLOPT_ через setCurlOption ();

 $this->_invalidOverwritableCurlOptions = array( CURLOPT_HTTPGET, CURLOPT_POST, CURLOPT_PUT, CURLOPT_CUSTOMREQUEST, CURLOPT_HEADER, CURLOPT_RETURNTRANSFER, CURLOPT_HTTPHEADER, CURLOPT_POSTFIELDS, CURLOPT_INFILE, CURLOPT_INFILESIZE, CURLOPT_PORT, CURLOPT_MAXREDIRS, CURLOPT_CONNECTTIMEOUT, CURL_HTTP_VERSION_1_1, CURL_HTTP_VERSION_1_0, ); 

Вы используете CURLOPT_HEADER, который используется для установки CURL для представления HEADERS, полученных ответом сервера, для отправки HTTP-заголовков:

 <?php curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: $mimeType")); ?> 

Я вообще не знаю zend_HHTP_Client, но попробую:

 $adapter->setCurlOption('CURLOPT_HTTPHEADER', array("Content-Type: $mimeType"));