Загрузка файла на мой Linux-хостинг PHP через URL - PullRequest
0 голосов
/ 10 августа 2010

Прежде всего, я не знаю, где я должен задать этот вопрос;поэтому я рассчитываю на то, что модераторы переместят его, если это будет необходимо.

У меня есть учетная запись хостинга Linux PHP на GoDaddy.

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

Однако, если это файл, который мне нужно загрузить с другого веб-сайта, я бы предпочел, чтобы я мог "загрузить" его непосредственно в свою учетную запись хостинга;причина в том, что я на Маврикии, и наша связь одна из самых медленных в мире.Поэтому я бы предпочел использовать высокую (я предполагаю, что она выше) пропускную способность хоста, чтобы передачи выполнялись быстрее.

Итак, мой вопрос: есть ли у кого-нибудь из вас решение (PHP-скрипт,Java-апплет или что-нибудь), что я мог бы использовать для достижения этого?

Заранее спасибо,

Юсуф

Ответы [ 3 ]

2 голосов
/ 10 августа 2010

Прежде всего, это может быть угроза безопасности на вашем сервере.

Во-вторых, вот маленький непроверенный код:

<?php

echo 'get file...';

$data=file_get_contents('http://...target-url...');

if($data===false)die('Failed getting file.');

echo 'saving file...';

$succ=file_put_contents('...target-file...',$data);

echo $succ ? 'Success' : 'Failed saving file';

?>

Используемый скрипт (помещается в файл "down.php" в вашем веб-корне):

<?php
    echo 'get file...';
    if(!isset($_REQUEST['from'])die('Fail: Parameter "from" not set.');
    if(!isset($_REQUEST['to'])die('Fail: Parameter "to" not set.');
    $data=file_get_contents($_REQUEST['from']);
    if($data===false)die('Failed getting file.');
    echo 'saving file...';
    $succ=file_put_contents($_REQUEST['to'],$data);
    echo $succ ? 'Success' : 'Failed saving file';
?>

Использование (запустите его из веб-браузера):

http://yoursite.com/down.php?from=http://yourothersite.com/file-content.txt&to=/var/www/public_html/target.txt

ПРЕДУПРЕЖДЕНИЕ: Обязательно удалите сценарий после использования, это серьезная проблема безопасности.

0 голосов
/ 09 октября 2014

Христианский трюк улучшит работу с этим кодом.

Вы можете создать папку вроде d на своем хосте и защитить ее паролем!Затем создайте новый index.php и поместите в него код beloow

<?php
 echo 'Get file...';
 $url = $_REQUEST['from'];
 $filename= preg_replace('/\\?.*/', '', basename($url));
 $to ='dl/'.$filename;
 $data=file_get_contents($_REQUEST['from']);
 if($data===false)die('Failed getting file.');
 echo "<br/>".'Saving file...';
 $succ=file_put_contents($to,$data);
 echo $succ ? "<br/>".'Success' : "<br/>".'Failed saving file';
?>

, наконец, создайте папку с именем dl для хранения загруженных файлов.

Использование (запустите его виз веб-браузера):

http://yoursite.com/d/?from=http://yourothersite.com/file.txt
0 голосов
/ 10 августа 2010

Wget Я использую его для загрузки WordPress прямо на сервер:

 # Download the title page of example.com to a file
 # named "index.html". 
 wget http://www.example.com/
 # Download Wget's source code from the GNU ftp site. wget
 ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz

Пример взят по ссылке выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...