Здравствуйте. Отправляю через CURL запрос к api сайта. Передаю данные (фото в base64). При размере данных до 10Мб все ок, если больше то не отправляет запрос. Перепробовал разные настройки в php.ini, ничего не помогает. Размер определял выводом в файл строки и через strlen. Текущие настройки: Original upload_max_filesize: 20M Original post_max_size: 50M Original memory_limit: 128M Original max_file_uploads: 30 Original max_input_time: 60 CURL, которым отправляю: Код (Text): if( $curl2 = curl_init() ) { curl_setopt($curl2, CURLOPT_URL, $url); curl_setopt($curl2, CURLOPT_POST, true); curl_setopt($curl2, CURLOPT_POSTFIELDS, $data); curl_setopt($curl2, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl2, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl2, CURLOPT_SSL_VERIFYHOST, false); $out = curl_exec($curl2); $result_ad = json_decode($out); $err_no = curl_errno($curl2); curl_close($curl2); } var_dump($out); // null var_dump($err_no); // string(0) "" При размере до 10Мб всё работает корректно. При превышении на сайт запрос вообще не приходит. В каком направлении смотреть?
Спасибо, проверил. client_max_body_size 256M - это для nginx LimitRequestBody 20000000 - это для апач Проблему не решило( Переписал механизм передачи по-другому, но вопрос остался открытым. В принципе вопрос супер не тривиальный, редко у кого встретится.
выведите phpinfo(). у php-fpm мешок конфигов и нередко не в том меняют настройки попробуйте отправить запрос куда угодно хоть на свой же хост, возможно проблема не у вас вовсе
Возможно кому-то поможет! нужно копать в эту сторону - https://www.php.net/manual/ru/function.curl-setopt.php#96056 у меня тоже была такая проблема, всё решил, вот мой код Код (Text): ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_ENCODING, ""); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); $params = (is_array($params)) ? http_build_query($params) : $params; curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($params))); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_URL, $url); $response = curl_exec($ch);