Как заставить файл загружаться в PHP

У меня есть список изображений, и я хочу ссылку «Загрузить» вместе с каждым изображением, чтобы пользователь мог загрузить изображение.

так может ли кто-нибудь мне посоветуться Как предоставить ссылку для скачивания для любого файла в php?

РЕДАКТИРОВАТЬ

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

Если вы хотите принудительно загрузить, вы можете использовать что-то вроде следующего:

 <?php // Fetch the file info. $filePath = '/path/to/file/on/disk.jpg'; if(file_exists($filePath)) { $fileName = basename($filePath); $fileSize = filesize($filePath); // Output headers. header("Cache-Control: private"); header("Content-Type: application/stream"); header("Content-Length: ".$fileSize); header("Content-Disposition: attachment; filename=".$fileName); // Output file. readfile ($filePath); exit(); } else { die('The provided file path is not valid.'); } ?> 

Если вы просто ссылаетесь на этот скрипт, используя обычную ссылку, файл будет загружен.

Кстати, фрагмент кода выше должен быть выполнен в начале страницы (до появления каких-либо заголовков или вывода HTML.) Также позаботьтесь, если вы решили создать функцию, основанную на этом, для загрузки произвольных файлов – вам нужно будет убедитесь, что вы предотвращаете обход каталога ( реальный путь удобен), разрешает только загрузки из определенной области и т. д., если вы принимаете входные данные из $ _GET или $ _POST.

Решение проще, чем вы думаете;) Простое использование:

 header('Content-Disposition: attachment'); 

И это все. Например, Facebook делает то же самое.

В атрибуте download HTML5 тега <a> можно использовать:

 echo '<a href="path/to/file" download>Download</a>'; 

Этот атрибут используется только в том случае, если атрибут href установлен.

Ограничений на допустимые значения нет, и браузер автоматически обнаружит правильное расширение файла и добавит его в файл (.img, .pdf, .txt, .html и т. Д.).

Подробнее читайте здесь .

Вы можете сделать это в .htaccess и указать для разных расширений файлов. Иногда бывает проще сделать это, чем жесткое кодирование в приложении.

 <FilesMatch "\.(?i:pdf)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch> 

Кстати, вам может понадобиться очистить кеш браузера, прежде чем он будет работать правильно.