Aysad Kozanoglu - Mimarist

Server Howtos & Tutorials

PHP, CURL entfernte Datei runterladen, speichern und als download zurückgeben

16 Januar, 2017 | Scripts Codes

Es kommt vor dass man seine eigene Quellen nicht Preisgeben möchte.
Deshalb habe diesen Script entworfen.
Es lädt entfernt gelegene Dateien lokal auf dem Server runter, speichert ab und gibt als Download wieder zurück.

Zur Entlastung check das script ab ob Dateiname bereits lokal existiert und dementsprechend gibt sie ohne remote download den lokal gelegenen Datei zurück.

Zum Veranlassen von erneuten runterladen und abspeichern, kann man über parameter bestimmen anhand Parameter "r=1"

script:

<?php
#======================================
#  remote download file, save it
#     and return as save as
#
#     Aysad Kozanoglu
# needed extension: php-curl 
#======================================

if(!isset($_REQUEST[file]))
        die("{'status':'false'}");

$f = $_REQUEST[file];

function getfile($f){
        $ch = curl_init("http://pastebin.com/raw/".$f);
        $fp = fopen($f.".txt", "w");

        curl_setopt($ch, CURLOPT_FILE, $fp);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        curl_exec($ch);

        curl_close($ch);
        fclose($fp);
}

if (!file_exists($f.".txt") || isset($_REQUEST[r]))
        getfile($f);

// header("Content-Type: audio/mpegurl");
// header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=".basename($f).".txt");
readfile(basename($f).".txt");

?>