Как скачать файл с сервера в php?

Пользователь

от bart , в категории: PHP , 2 года назад

Как скачать файл с сервера в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от dmitrypro77 , 2 года назад

@bart можете использовать curl библиотеку в PHP чтобы скачать любой файл с сервера на PHP, код:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

// Ссылка на файл
$url = 'https://lapku.ru/wp-content/uploads/2022/05/Ternetsiya-ryba-386x480.jpeg';

// Инициализировать curl
$ch = curl_init($url);

// Директория куда скачать файл
$path = "/tmp/";

// Получить название файла из URL
$fileName = basename($url);

// Полный путь к файлу
$filePath = $path . $fileName;

// Открыть файл
$fp = fopen($filePath, 'wb');

// Установить опции для скачивания файла
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

// Выволнить curl
curl_exec($ch);

// Закрыть curl
curl_close($ch);

// Закрыть файл
fclose($fp);


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от guillermo , 8 месяцев назад

@bart 

Для скачивания файла с сервера в PHP можно использовать функцию readfile(). Ее синтаксис выглядит следующим образом:

1
readfile('путь_к_файлу_на_сервере');


Пример использования:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$file = 'путь_к_файлу_на_сервере';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
} else {
    echo 'Файл не существует.';
}


Этот код проверяет наличие файла на сервере, устанавливает необходимые заголовки для передачи файла и использует функцию readfile() для отправки файла на клиентскую сторону. Если файла нет на сервере, будет выведено соответствующее сообщение.

Пользователь

от otha_marks , 8 месяцев назад

@bart 

Для скачивания файла с сервера в PHP можно использовать функцию header() для отправки правильных заголовков и readfile() для чтения и вывода содержимого файла.


Вот пример кода для скачивания файла example.txt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
$file = 'example.txt';

if (file_exists($file)) {
    // Устанавливаем правильные заголовки для скачивания файла
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    
    // Читаем и выводим содержимое файла 
    readfile($file);
    exit;
} else {
    echo 'Файл не найден.';
}


В этом примере, если файл example.txt существует, устанавливаются все необходимые заголовки для скачивания файла. Затем функция readfile() отправляет содержимое файла клиенту для скачивания. Если файл не найден, выводится сообщение "Файл не найден."