Скачать файлы на веб-сервер с другого сайта, используя php - PullRequest
7 голосов
/ 27 декабря 2010

можно ли загрузить файл размером более 200 МБ непосредственно на мой веб-хостинг, чтобы мне не приходилось загружать этот файл на мой компьютер, а затем загружать его с помощью моего ftp-клиента.и так как я не использую ssh, я не могу использовать wget.я думал о php или per или cgi может быть .. (открыто для всех идей ..)

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

или

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

PLZ Help ....

Ответы [ 3 ]

7 голосов
/ 28 декабря 2010

Для 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);
4 голосов
/ 27 декабря 2010

в 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');
?>

завиток - это еще один способ. Вы можете выполнить команду оболочки или использовать curl php.

также убедитесь, что папка (или файл), которую вы хотите загрузить, доступна для записи

1 голос
/ 27 декабря 2010

С помощью 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);
?>

Это требует двух вещей:

  • Локальный файл должен быть доступен для записи веб-сервером
  • allow_url_fopen должен быть активирован на веб-сервере
...