PHP скачать удаленный динамический файл на локальный сервер - PullRequest
1 голос
/ 14 ноября 2011

Когда я делаю вызов на стороне сервера для удаленного http://aa.com/generatefeed.php

Он должен в реальном времени загрузить feed_randomnumber.csv (произвольное имя файла) и сохранить его под тем же именем на локальном сервере.

Но это не работает.

что не так.

getfeed.php

getremotetofile("http://aa.com/generatefeed.php");


public static function getremotetofile($fileurl)
{
    $newfilename= basename($fileurl);

    $destination=fopen($newfilename,"w");

    $source=fopen($fileurl,"r");
    $maxsize=3000;
    $length=0;
    while (($a=fread($source,1024))&&($length<$maxsize))
    {
        $length=$length+1024;
        fwrite($destination,$a);
    }
    fclose($source);
    fclose($destination);       

}

generatefeed.php

$fullcontent="bla,bla,bla";

header("Content-type:text/octect-stream");
header("Content-Disposition:attachment;filename=feed_randomnumber.csv");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($strHeader));        

print $fullcontent;

exit;

Ответы [ 4 ]

1 голос
/ 14 ноября 2011

Попробуйте использовать CURL вместо fopen, возможно, он отключен на вашем сервере.

$file = "http://somelocation.com/somefile.php";$ch = curl_init($file);$fp = @fopen("temp.php", "w");curl_setopt($ch, CURLOPT_FILE, $fp);curl_setopt($ch, CURLOPT_HEADER, 0);curl_exec($ch);curl_close($ch);fclose($fp);$file = "temp.php";$fp = fopen($file, "r");

0 голосов
/ 09 февраля 2014
file_put_contents('localFile.csv', file_get_contents('http://www.somewhere.com/function.php?action=createCSVfile'));

Я использую это для динамической загрузки удаленного csv и сохранения его на локальном сервере.

0 голосов
/ 14 ноября 2011

Попробуйте это:

   getremotetofile("http://aa.com/generatefeed.php");


    public static function getremotetofile($fileurl)
    {
      $newfilename= basename($fileurl);
        $content = file_get_contents($fileurl);
        file_put_contents($newfilename, $content);

    }
0 голосов
/ 14 ноября 2011

Определите, что не работает с вашим кодом.Вы включили allow_url_fopen в вашей конфигурации php?Посмотрите на http://php.net/manual/en/features.remote-files.php

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