我正在运行一个脚本(在Windows Server 2008 R2 x64上,运行最后一个WAMP,使用PHP CLI),将大文件(500-700mb)上传到远程主机。
以下是代码:
function upload_file($file){
//some check to see file exists and get tokens...
//The upload code itself
$post_fields['vfile'] = "@".$file;
$post_fields['upload'] = "1";
$post_fields ['token'] = 'xxxxxx';
if(!empty($user_token))
$post_fields['upload_hash'] = $user_token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$converter);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
$result=curl_exec ($ch);
curl_close ($ch);
return $result;
}
问题在于,在以大约35mb / s的速度上传128MB之后,上传速度减慢到大约1mb / s,直到文件的其余部分为止。
我的猜测是php memory_limit是问题,所以我尝试将php.ini文件修改为memory_limit = -1,然后我理解CLI有一个不同的php.ini,然后我使用-d参数从cmd运行php :
C:\ wamp \ bin \ php \ php5.5.12 \ php.exe -d memory_limit = -1 C:\ wamp \ www \ uploader.php
然后我尝试设置
ini_set("memory_limit",-1);
当我回应
echo ini_get("memory_limit");
结果是-1所以我现在认为php不是问题,我想知道你是否有任何想法解决这个问题,并继续以35mb / s的速度上传?另外,我想提一下我是远程主机的朋友,他向我保证没有上传速度限制。