Как получить файл с другого сервера и переименовать его в PHP - PullRequest
2 голосов
/ 26 марта 2012

Я искал способ выполнить ряд задач в PHP

  1. Получить файл с другого сервера
  2. Изменить имя файла и расширение
  3. Загрузите новый файл для конечного пользователя

Я бы предпочел метод, который действует как тип прокси-сервера, но загрузка файла была бы в порядке

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

Ответы [ 4 ]

0 голосов
/ 26 марта 2012

Я использую что-то вроде этого:

<?php
$url  = 'http://www.some_url.com/some_file.zip';
$path = '/path-to-your-file/your_filename.your_ext';

function get_some_file($url, $path){
    if(!file_exists ( $path )){
        $fp = fopen($path, 'w+');
        fwrite($fp, file_get_contents($url));
        fclose($fp);
    }
}
?>
0 голосов
/ 26 марта 2012

См. Пример на http://www.php.net/manual/en/function.curl-init.php

Это захватывает данные и выводит их прямо в браузер, заголовки и все.

0 голосов
/ 26 марта 2012

Если для параметра allow_url_fopen установлено значение true:

 $url = 'http://example.com/image.php';
 $img = '/my/folder/flower.gif';
 file_put_contents($img, file_get_contents($url));

В противном случае используйте cURL:

 $ch = curl_init('http://example.com/image.php');
 $fp = fopen('/my/folder/flower.gif', 'wb');
 curl_setopt($ch, CURLOPT_FILE, $fp);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_exec($ch);
 curl_close($ch);
 fclose($fp);
0 голосов
/ 26 марта 2012

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

<?php
    $url  = 'http://www.example.com/a-large-file.zip';
    $path = '/path-to-file/a-large-file.zip';

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $data = curl_exec($ch);

    curl_close($ch);

    file_put_contents($path, $data);
?>

После сохранения переименуйте файл с любым именем, которое вам нужно

См. Это

http://www.php.net/manual/en/ref.curl.php

...