CURL. Как отправить post запрос, состоящий из json и files

Подскажите, пожалуйста, необходимо отправить Post запрос, который состоит из json и нескольких файлов. Если отправлять только json, то проблем нет. Отправляю на api laravel. Основная задача скрипта - загрузить/обновить документы.

введите сюда описание изображения

Сейчас этот код возвращает ошибку

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: in file /var/www/trarchive-api-application/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php on line 255

Но если закомментировать

curl_setopt($ch, CURLOPT_UPLOAD, true);

Будет ошибка валидации

{"code":400,"message":{"files.0":["The files.0 must be a file."]}}

Файл существует, проверял функцией file_exists(), путь который передаю в CURLFile


Ответы (2 шт):

Автор решения: Fəqan Çələbizadə

Измени route (POST) на any

Route::any("SSILKA", 'YOUR METHOD');
→ Ссылка
Автор решения: Vladimir

Ничего не получилось через php-curl, поэтому пришлось прибегнуть curl через терминал.

curl POST 'http://127.0.0.1:8000/api/ead/eds/' --header 'Content-Type: multipart/form-data' --form 'files[]=@"/home/user/upload_file/1/1.pdf"' --form 'files[]=@"/home/user/upload_file/1/8.pdf"' --form 'data="{\"num\":\"1-00002\",\"reg_date\":\"2016-01-11\",\"name\":\"name document\",\"source_id\":2,\"ed_status_id\":4,\"files\":[{\"path\":\"\/home\/user\/upload_file\/1\/1.pdf\",\"file\":\"1.pdf\",\"fr_id\":1},{\"path\":\"\/home\/user\/upload_file\/1\/8.pdf\",\"file\":\"8.pdf\",\"fr_id\":2,\"parent_file\":\"1.pdf\"}]}";type=application/json'
→ Ссылка