我正在尝试通过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).")";
}
答案 0 :(得分:0)
curl都有一个默认超时允许它执行。您可以使用此curl选项延长此时间(因为我怀疑您在上传大文件时已超时):
curl_setopt($ch, CURLOPT_TIMEOUT, 5 * 60); // 5 minutes
答案 1 :(得分:0)
只需将超时设置为CURLOPT_TIMEOUT
,就可以设置0
的时间限制。
curl_setopt($ch, CURLOPT_TIMEOUT, 0);