php curl_exec不响应服务器响应

时间:2014-01-21 15:53:56

标签: php windows apache curl xampp

我正在尝试通过Curl将文件上传到另一台服务器。该脚本将文件上载到我自己的服务器。我的服务器处理上传和响应,我的脚本保持原样。 Hovever如果上传的文件大小(大约500MB)(似乎确实不同),即使我的服务器响应(AFAIK记录服务器端脚本的输出),脚本仍会继续运行。客户端是运行Xampp的Windows 7 x64计算机(尝试过不同的版本)。如果我通过html表单将相同的文件上传到相同的服务器端脚本,一切正常,我得到了我的回复。可能是什么问题?

$ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        "MAX_FILE_SIZE" => "2147483648",
        "action" => "upload",
        "userfile" => "@".$filepath));

    if($uploadresponse = curl_exec($ch)){
          echo"Upload done!";
      } else {
        echo"Curl error no. ".curl_errno($ch)." (".curl_error($ch).")";
            }

2 个答案:

答案 0 :(得分:0)

无论成功与否,

curl都有一个默认超时允许它执行。您可以使用此curl选项延长此时间(因为我怀疑您在上传大文件时已超时):

curl_setopt($ch, CURLOPT_TIMEOUT, 5 * 60); // 5 minutes

答案 1 :(得分:0)

只需将超时设置为CURLOPT_TIMEOUT,就可以设置0的时间限制。

curl_setopt($ch, CURLOPT_TIMEOUT, 0);