Есть ли ограничение по размеру для публикации файла с помощью curl?

Мне нужно опубликовать файлы размером до 50 МБ в Telegram Bot API.

Сейчас пользуюсь Curl и все проверено и прошло успешно. Это означает, что я могу отправлять только небольшие файлы (в моем тесте я не мог отправить файл размером 8,1 МБ). Поэтому, если я отправляю большие файлы (скажем, более 8 МБ), все переменные $_POST пусты, что означает, что ничего не опубликовано.

Вопрос. Есть ли ограничения на отправку файла с помощью curl? Потому что я попросил своего администратора сервера увеличить соответствующую конфигурацию в php.ini, но они ответили, что это не проблема php.ini, и в curl нет ограничений.

заранее спасибо.


person Hossein Shahsahebi    schedule 11.08.2015    source источник
comment
Используйте функцию realpath, например, realpath (ASSET_PATH . '/video/' . $asset-›name) в поле сообщения   -  person amarjeet kumar    schedule 11.08.2015
comment
Можете ли вы убедиться, что ASSET_PATH . '/видео/' . Путь $asset-›name правильный? Сделайте одно, просто напечатайте get_file_contents(ASSET_PATH . '/video/' . $asset-›name); Если он печатает какое-либо содержимое, это означает, что ваш путь к файлу правильный.   -  person amarjeet kumar    schedule 11.08.2015
comment
Похоже, проблема в целевой системе. Поскольку у вас есть доступ к нему, проверили ли вы ограничения на размер загрузки?   -  person Álvaro González    schedule 11.08.2015
comment
@ ÁlvaroG.Vicario, спасибо, чувак. ты был прав. проблема была на моей стороне, и она успешно отправляется в телеграмму. Мне нужно удалить свой вопрос или вы думаете, что он может быть полезен для других?   -  person Hossein Shahsahebi    schedule 11.08.2015
comment
Думаю, нет тоже полезный ответ :) Я составил ответ.   -  person Álvaro González    schedule 12.08.2015


Ответы (1)


Ограничения на загрузку — это функция безопасности. Без них мошенническая программа или злоумышленник могут снабжать ваш сервер непрерывным потоком данных до тех пор, пока ваш жесткий диск не будет заполнен, что сделает весь сервер непригодным для использования.

С точки зрения безопасности не особенно полезно ограничивать исходящие данные, и, насколько мне известно, ни библиотека Curl, ни сам PHP не налагают никаких ограничений.

Ваши симптомы предполагают, что проблема на целевом сервере. Поскольку у вас, похоже, есть к нему доступ (вы упомянули о том, что $_POST были пустыми), я предлагаю вам проверить ограничения на загрузку. Это то, что вы можете сделать (и часто изменить) самостоятельно, вам не нужно спрашивать администратора сервера. Основные задействованные директивы включают:

  • post_max_size
  • upload_max_filesize
  • max_file_uploads
  • max_input_time

Вы можете просмотреть их с помощью phpinfo() или ini_get() и изменить обычным способом.

person Álvaro González    schedule 12.08.2015
comment
Привет Альваро Гонсалес, я тоже получаю ту же ошибку. И я изменил значения, которые вы предложили, как на стороне клиента, так и на стороне сервера. Но это все еще не работает для меня. Не могли бы вы предложить мне какое-нибудь решение? - person Ashish Shah; 19.12.2018
comment
@AshishShah У вас есть какое-нибудь решение для этого? - person Tejas Khutale; 22.12.2018
comment
Привет @TejasKhutale, да. Мои проблемы были связаны с соответствующей конфигурацией хостинга. В .htaccess я изменил значения необходимых параметров. Но в моей конфигурации хостинга было запрещено перезаписывать. Поэтому я изменил конфиг и добавил 1 строку Allowoverride All (на стороне сервера co - person Ashish Shah; 24.12.2018