Загрузка файлов на веб-сервер с другого сайта с помощью php
можно ли загрузить файл размером более 200 Мб на мой веб-хостинг напрямую, чтобы мне не нужно было загружать этот файл на свой компьютер, а затем загружать его с помощью моего ftp-клиента. и поскольку я не использую ssh, я не могу использовать wget. я думал о php или per или cgi может быть.. (открыт для всех идей..)
+==============+ +--------+
| Big server | -----------+ +--->|web host|
+==============+ | +------+ | +--------+
+-->| MyPC |-----+ |
+------+ | +========+
+---->| client |
+========+
или
+============+
| Big Server | ---+
+============+ | +----------+
+--------------------->| Web Host |
+----------+
|
+------+ | +========+
| MyPC | +----->| client |
+------+ +========+
справка plz....
3 ответов
для 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);
в 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-это другой способ. вы можете выполнить команду оболочки или использовать curl php.
также убедитесь, что папка (или файл), которую вы хотите загрузить, доступна для записи
С 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 должен быть активирован на веб-сервере