我使用以下脚本下载大文件(从600mb到大约2gb),但下载30-40mb后PHP停止。我在我的主机上使用1gbps的网络连接运行这个,所以没有问题。
<?php
if(isset($_POST['submit'])){
$file_source = $_POST['url'];
$file_target = $_POST['name'];
set_time_limit(0);
$rh = fopen($file_source, 'rb');
$wh = fopen($file_target, 'w+b');
if (!$rh || !$wh) {
return false;
}
while (!feof($rh)) {
if (fwrite($wh, fread($rh, 4096)) === FALSE) {
return false;
}
echo ' ';
flush();
}
fclose($rh);
fclose($wh);
return true;
}
?>
<form method="post">
NAME : <input type="text" name="name" required><br><br>
URL : <input type="text" name="url" required><br><br>
<input type="submit" name="submit" value="submit">
</form>**strong text**
答案 0 :(得分:1)
您可能需要在AppendAllText
文件中设置upload_max_filesize
和post_max_size
的值:
php.ini
由于apache对POST大小的限制(2gb),无法使用大于2gb的文件 http://httpd.apache.org/docs/current/mod/core.html#limitrequestbody
答案 1 :(得分:-1)
看看这是否有帮助......
<?php
if(isset($_POST['submit']))
{
$file_source = $_POST['url'];
$file_target = $_POST['name'];
set_time_limit(0);
file_put_contents( $file_target, fopen( $file_source, 'r' ) );
}
?>
<form method="post">
NAME : <input type="text" name="name" required><br><br>
URL : <input type="text" name="url" required><br><br>
<input type="submit" name="submit" value="submit">
</form>**strong text**