【问题标题】:Is there any size limit to post a file using curl?使用 curl 发布文件是否有大小限制?
【发布时间】:2015-11-03 15:29:54
【问题描述】:

我需要将最大 50 MB 的文件发布到 Telegram bot API。

现在我正在使用 Curl 并且所有内容都经过测试并成功通过。这意味着我只能发送小文件(在我的测试中我无法发送 8. 1 MB 的文件)。因此,如果我发送大文件(比如说超过 8 MB),所有$_POST 变量都是空的,意味着没有发布任何内容。

问题: 使用 curl 发送文件有什么限制吗?因为我让我的服务器管理员在php.ini增加相关配置,但他们回答不是php.ini的问题,curl没有限制。

【问题讨论】:

  • 在 post 字段中使用 realpath 函数,如 realpath (ASSET_PATH . '/video/' . $asset->name)
  • 你能确定一个 ASSET_PATH 吗? '/视频/' 。 $asset->name 路径是否正确?做一件事,只需打印 get_file_contents(ASSET_PATH . '/video/' . $asset->name);如果它打印任何内容,则意味着您的文件路径是正确的。
  • 看起来是 target 系统的问题。既然您似乎可以访问它,您是否验证了上传大小限制?
  • @ÁlvaroG.Vicario 谢谢老兄。你是对的。问题出在我自己这边,它成功发送到电报。我必须删除我的问题还是您认为它对其他人有用?
  • 我猜“否”也是一个有用的答案 :) 我已经编写了一个答案。

标签: php curl telegram


【解决方案1】:

上传限制是一项安全功能。如果没有它们,流氓程序或攻击者可能会向您的服务器提供连续的数据流,直到您的硬盘已满,从而使整个服务器无法使用。

从安全的角度来看,限制传出数据并不是特别有用,而且据我所知,Curl 库和 PHP 本身都没有施加任何限制。

您的症状表明问题出在目标服​​务器上。由于您似乎可以访问它(您提到空了$_POST),我建议您在那里验证上传限制。这是您可以自己做(并且经常改变)的事情,您不必询问服务器管理员。主要涉及的指令包括:

  • post_max_size
  • upload_max_filesize
  • max_file_uploads
  • max_input_time

您可以使用phpinfo()ini_get() 检查它们,也可以更改它们the usual way

【讨论】:

  • 您好 Álvaro González,我也遇到了同样的错误。我已经更改了您在客户端和服务器端建议的值。但它仍然不适合我。你能建议我一些解决方案吗?
  • @AshishShah 你有什么解决办法吗?
  • 你好@TejasKhutale,是的。我的问题是由于适当的托管配置所致。在 .htaccess 中,我更改了所需参数的值。但是在我的托管配置中,不允许覆盖。所以我更改了conf并添加了1行“Allowoverride All”(在服务器端co
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多