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 шт):
Измени route (POST) на any
Route::any("SSILKA", 'YOUR METHOD');
Ничего не получилось через 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'
