Я использую Buzz Browser для вызова метода POST
. Я получаю файл от клиента в одной из end point
.
$fileObj = $requestObject->files->get('image_data');
Это правильный fileObject
. Я проверил это с помощью is_file()
.
Теперь я должен запустить событие Buzz Browser
используя этот файл в качестве параметра.
$headers = array('Content-Type'=>'multipart/form-data'); $url = $genericHost . $api; //A valid URL $params = array('image_data' => $fileObj);//fileObj obtained above
Публикация этой информации с помощью buzzBrowser
$browser->post($url, $headers, $params);
И получение его как
$fileObj = $this->get('request')->files->get('image_data');
Но окончательный $fileObj
равен NULL
.
Я попытался сбросить $this->get('request')->files
–
object(Symfony\Component\HttpFoundation\FileBag)#11 (1) { ["parameters":protected]=> array(0) { } }
Значит, файл отсутствует. Что не так в моем подходе?
Изменить: 1
После отладки больше, я обнаружил, что файл-объект отправляется как обычные параметры:
["request"]=> object(Symfony\Component\HttpFoundation\ParameterBag)#7 (1) { ["parameters":protected]=> array(1) { ["image_data"]=> string(14) "/tmp/php6QLezs" } }
Заголовок запроса:
["headers"]=> object(Symfony\Component\HttpFoundation\HeaderBag)#13 (2) { ["headers":protected]=> array(7) { ["content-type"]=> array(1) { [0]=> string(70) "multipart/form-data; boundary=----------------------------1b3e33ff2ecb" } ["content-length"]=> array(1) { [0]=> string(3) "159" } ["host"]=> array(1) { [0]=> string(16) "host_name" } ["accept"]=> array(1) { [0]=> string(3) "*/*" } ["x-php-ob-level"]=> array(1) { [0]=> int(1) } }
Наконец, решила его, используя метод отправки Buzz Browser's
.
use Buzz\Message\Form\FormRequest; use Buzz\Message\Form\FormUpload; $request = new FormRequest(); $request->setField('image_data', new FormUpload($imageFilePath)); $request->setHeaders($headers); $request->setMethod($method); $request->setHost($genericHost); $request->setResource($api); $response= $this->browser->send($request, null);
Он по-прежнему не решен с помощью post
Buzz Browser