Сохранение ответа PDF Curl в каталоге сервера - PullRequest
0 голосов
/ 25 января 2019

Я получаю и скачиваю .pdf с URL. Он загружается прямо на мой компьютер через запрос Curl. Как сохранить это в каталоге на сервере, где работает страница?

Я могу использовать PHP и JS, я пробовал многие вещи, даже объединяя два языка, но, кажется, работает только запрос curl, и он не сохраняет его в каталоге

<body>
    <button id="boton">CLICK ME</button>
        <?php
    $name = 'file'; 
    $file_downloaded = curl_init(); 
    curl_setopt($file_downloaded, CURLOPT_URL, 'The url'); 
    //curl_setopt($file_downloaded, CURLOPT_HEADER, true);
    curl_setopt($file_downloaded, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($file_downloaded, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($file_downloaded, CURLOPT_AUTOREFERER, true);
    $file_downloaded = curl_exec($file_downloaded); 
    if(!curl_errno($file_downloaded)) 
    {
      header('Content-type:application/pdf'); 
      header('Content-Disposition: attachment; filename ="'.$nuevo_nombre.'.pdf"'); 
      echo($file_downloaded);
      exit();
    }else
    {
      echo(curl_error($file_downloaded)); 
    }
    ?>

    <script>
        $("#boton").click(function () { 
        var archivo = '<?php echo($file_downlaoded) ?>';
        var data = new FormData();
        data.append("data" , archivo);
        var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
        xhr.open( 'post', '/my/directory', true );
        xhr.send(data);
    });

    </script>
</body>

Он загружается на мой локальный компьютер, и ожидается, что он будет загружен по пути / my / каталог сервера.

EDIT

        <?php
    $nuevo_nombre = 'remito'; //asignamos nuevo nombre
    $archivo_descarga = curl_init(); //inicializamos el curl
    curl_setopt($archivo_descarga, CURLOPT_URL, 'URL'); 
    //curl_setopt($archivo_descarga, CURLOPT_HEADER, true);
    curl_setopt($archivo_descarga, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($archivo_descarga, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($archivo_descarga, CURLOPT_AUTOREFERER, true);
    $resultado_descarga = curl_exec($archivo_descarga); 
    file_put_contents('/path/to/file.pdf', $resultado_descarga);
?>

1 Ответ

0 голосов
/ 25 января 2019

Это было решено с помощью функции file_put_contents (), а также была проблема с разрешениями для папки каталога.

function Download($endpoint) {
        $URL = 'URL';
        $fileName= 'name1';
        $path = 'testDirectory/'.$filename.'.pdf';
        $file_download= curl_init();

        curl_setopt($file__download, CURLOPT_URL, $URL.$endpoint);
        curl_setopt($file__download, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($file__download, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($file__download, CURLOPT_AUTOREFERER, true);
        $result= curl_exec($file__download);
        file_put_contents($path, $result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...