使用php从其他站点将文件下载到Web服务器

时间:2010-12-27 17:04:08

标签: php curl download wget

可以直接将大于200 mb的文件下载到我的网络托管上,这样我就不必将该文件下载到我的计算机上,然后使用我的ftp客户端上传。 因为我不使用ssh我不能使用wget。我在考虑php或per或cgi可能是.. (对所有想法持开放态度。)

+==============+                                  +--------+
|  Big server  | -----------+                +--->|web host|
+==============+            |   +------+     |    +--------+
                            +-->| MyPC |-----+        |
                                +------+              |     +========+
                                                      +---->| client |
                                                            +========+

+============+
| Big Server | ---+
+============+    |                      +----------+
                  +--------------------->| Web Host |
                                         +----------+
                                            |
   +------+                                 |      +========+
   | MyPC |                                 +----->| client |
   +------+                                        +========+

plz help ....

3 个答案:

答案 0 :(得分:7)

对于cURL

$url = "http://path.com/file.zip";
$fh = fopen(basename($url), "wb");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
curl_close($ch);

答案 1 :(得分:4)

php中最简单的可能是:

<?php
copy('http://server.com/big.file','/local/path/big.file');
?>

但是你应该能够执行wget。特别是如果在您的服务器上停用外部fopen很可能

使用php就像:

<?php 
chdir('/where/i/want/to/download/the/file/');
system('wget http://server.com/big.file');
?>

<?php
system('wget -O /where/i/want/to/save http://server.com/big.file');
?>
卷曲是另一种方式。你可以执行shell命令或使用curl php。

还要确保您要下载的文件夹(或文件)是可写的

答案 2 :(得分:1)

使用PHP,您可以下载文件:

<?php
$in = fopen('http://example.com/', 'r');
$out = fopen('local-file', 'w');
while(!feof($in)) {
  $piece = fread($in, 2048);
  fwrite($out, $piece);
}
fclose($in);
fclose($out);
?>

这需要两件事:

  • 本地文件必须可由Web服务器写入
  • 必须在Web服务器上激活allow_url_fopen