【发布时间】:2014-02-11 07:57:48
【问题描述】:
我正在尝试通过 Curl 将文件上传到另一台服务器。该脚本将文件上传到我自己的服务器。我的服务器处理上传和响应,我的脚本继续运行。如果上传的文件很大(大约 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).")";
}
【问题讨论】:
-
我现在已经在另一台机器上进行了尝试,一台装有 Windows Server 2012 x64 的服务器(通过 Xampp 而不是 IIS)。有效。原因可能是上传速度比通过我的家庭连接快 5 倍。
-
从 Win 2012 服务器安装相同的 Xampp 后,它无法在我的家用计算机上运行。我也在安全工作模式下尝试过,但没有运气。防火墙杀毒软件等从测试开始就被禁用了。我将在另一台安装了全新 Windows 7 的机器上试用它。如果它不起作用,我会在家里尝试安装 Windows server 2012,因为问题可能是路由器或其他问题。
-
它也不能在 Windows 服务器上运行。但是在我连接到邻居的 WLAN 后它就起作用了。我现在来看看路由器设置。
标签: php windows apache curl xampp