gpt4 book ai didi

php - 从外部链接远程下载文件到我的服务器 - 下载过早停止

转载 作者:行者123 更新时间:2023-12-04 14:38:52 26 4
gpt4 key购买 nike

我有一个页面集,我在其中输入文件的 URL,我让我的服务器下载该文件并将其保存到我服务器上的一个文件夹中。问题是我不知道如何将文件下载到我的服务器。以下两种方法我都试过了,都没有用。

这个会抛出关于打开流失败的错误:

$url = 'http://www.example.com/file.zip';
$enc = urlencode($url);
$dir = "/downloads/file.zip";
$raw = file_get_contents($enc);
file_put_contents($dir, $raw);

这个有效,但我只能从 270kb 的文件中得到 18kb:(我试图增加超时)

set_time_limit(0);

$url = 'http://www.eample.com/file.zip';
$fp = fopen ('/downloads/file.zip', 'w+');

$ch = curl_init($url);

curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_BINARYTRANSFER => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FILE => $fp,
CURLOPT_TIMEOUT => 50,
CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'
));

$results = curl_exec($ch);
if(curl_exec($ch) === false)
{
echo 'Curl error: ' . curl_error($ch);
}

最佳答案

This one throws an error about a failed open stream:

...
$enc = urlencode($url);
...

我认为这并不奇怪,因为您不需要对已经正确编码的 url 进行“urlencode”。尝试:

$url = 'http://www.example.com/file.zip';
$file = "/downloads/file.zip";
$src = fopen($url, 'r');
$dest = fopen($file, 'w');
echo stream_copy_to_stream($src, $dest) . " bytes copied.\n";

参见 stream_copy_to_stream­Docs .如果你需要设置更多的 HTTP 东西,比如用户代理等,使用 HTTP Context Options­Docs .

关于php - 从外部链接远程下载文件到我的服务器 - 下载过早停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com