【问题标题】:PHP/cURL file transfer limit over SSL?SSL上的PHP / cURL文件传输限制?
【发布时间】:2013-04-13 03:45:19
【问题描述】:

我编写了几个 PHP 脚本,使用 cURL 通过 SSL 连接将文件从 ServerA 传输到 ServerB。两者都是运行 IIS 的 Windows 服务器。该代码适用于较小的文件(大约 7MB 以下)。但是,它对于任何比这更大的东西都失败了。

这似乎是 SSL 的问题。我在ServerB上临时开通了一个http端口,能够成功发送一个650MB的文件。但是当通过 SSL 发送时,它会爆炸。使用 Wireshark,我可以看到它很快发送了大约 7-8MB,然后没有更多的数据包出去。脚本会一直挂起,直到超时。

我返回的 cURL 错误是:SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054

cURL SSL 连接是否存在某种发送限制?

【问题讨论】:

  • curl+ssl 使用什么协议? FTP? SCP? sftp?错误 10054 是“连接被对等方关闭”。
  • 我只是打开一个 https 连接,并通过 POST 传输文件。

标签: php iis file-upload curl ssl


【解决方案1】:

经过一整天半的尝试,我找到了解决方案。很简单。我所要做的就是添加:

curl_setopt($curl, CURLOPT_SSLVERSION,3); 

希望这个帖子可以帮助其他人摆脱我一直在尝试解决这个问题的痛苦。 :)

【讨论】:

    【解决方案2】:

    确保将 php.ini 中的默认 post_max_size 更新为大于默认值 8MB:

    post_max_size = 8M
    

    请务必在之后重新启动 IIS。如果这确实解决了问题,我不确定为什么它适用于 HTTP 而不是 HTTPS,但值得一试。

    【讨论】:

    • 是的,我已经用尽了 php.ini 和 IIS 中我能想到的与此有关的所有设置。所有文件大小限制设置为 GB 或更多,所有超时设置为至少 60 分钟。奇怪的是,传输的数据量或运行时间并不一致。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多