«Указан неверный тип содержимого» при загрузке файла в Apigility

1

Я создаю API RPC, используя Zend Framework 2 и Apigility by Zend Framework. Для тестирования я использую chrome extension Postman REST-Client.

Я могу делать запросы POST без проблем, когда я использую Postman. Но мой код не работает.

$client = new \Zend\Http\Client();
$client->setUri($uri)
        ->setMethod('POST')
        ->setParameterPost(
            array(
                'file' => '/home/user/Downloads/file.csv'
            )
        );

$headers = new \Zend\Http\Headers();

$headers->addHeaders(array(
    'Accept' => 'application/json;',
));

$client->setHeaders($headers);

$client->setStream();
$response = $client->send();

$file = '/home/user/Downloads/file.csv';
$file2 = '/home/user/Downloads/file2.csv';
copy($response->getStreamName(), $file);
$fp = fopen($file2, "w");
stream_copy_to_stream($response->getStream(), $fp);
$client->setStream($file);

$responce = $client->send();

echo $responce->getBody();

Я попытался передать другие заголовки Content-Type, но это приводит к фатальной ошибке. Что мне нужно, чтобы передать заголовки, чтобы они работали?

  • 0
    Что такое фатальная ошибка?
  • 0
    Похоже, вы пытаетесь загрузить файл. Вы читали это? apigility.org/documentation/recipes/upload-files-to-api
Показать ещё 1 комментарий
Теги:
file-upload
apigility

1 ответ

0

Вы должны установить заголовок Content-Type для multipart/form-data. Надстройка Postman, которую вы используете в Chrome, делает это автоматически для загрузки файлов.

Поэтому установите заголовки следующим образом:

$headers->addHeaders(array(
    'Accept' => 'application/json',
    'Content-Type' => 'multipart/form-data'
));

Если это не сработает, будьте более конкретными относительно фатальной ошибки, которую вы получите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню