Как вынудить файл загрузить в PHP

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

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

Править

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

6
задан John Parker 13 August 2010 в 12:05
поделиться

1 ответ

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

<?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). Также будьте осторожны, если вы решите создать основанную на этом функцию для загрузки произвольных файлов - вам необходимо убедиться, что вы предотвратите обход каталога (удобен realpath ), разрешите загрузку только из определенной области и т. д., если вы принимаете ввод от $ _GET или $ _POST.

30
ответ дан 8 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: