Intereting Posts
Преобразование не вложенного и скобочного массива в вложенный массив Не удалось получить опубликованный массив из jQuery Использование PHP для загрузки файла и добавления пути к базе данных MySQL Форматирование даты и времени Каков правильный код статуса HTTP для отправки, когда сайт отключен для обслуживания? Установка ширины ячейки электронных таблиц с помощью PHPExcel Как сделать AJAX с setInterval в Laravel 5.4 Вырезание символов, которые не являются a-zA-Z0-9, _ и – из строк PHP Необходимо избегать ввода пользователем из базы данных? это json и как заменить значения с помощью php-переменных? Как я могу использовать простой раскрывающийся список в окне поиска GridView :: widget, Yii2? Невозможно разобрать XML-данные с двоеточием (:) из ответа с помощью getNamespaces () Повторяющиеся ключи для ассоциативных массивов PHP Строка Reformat JSON с форматами диаграмм php to morris Количество слов в тексте?

как сделать ссылку для загрузки в PHP?

Я могу загрузить файл в базу данных с помощью sql, но как я могу сделать ссылку для загрузки? например, когда вы загружаете что-то в Интернете, появится окно с сообщением о том, хотите ли вы открыть его с помощью программы или сохранить ее. как я могу это сделать в php? можете ли вы дать мне коды для этого? я все еще ноб.

Поместите этот код на страницу (вместе с PHP-кодом, чтобы получить информацию из БД и поместить ее в переменные для имени / размера / данных, затем ссылку на эту страницу.

<?php header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $name_of_file); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . $size_of_file); echo $file_data; ?> 

Не все заголовки, перечисленные выше, строго необходимы – на самом деле для правильной работы загрузки действительно нужен только заголовок Content-Type. Заголовок Content-Disposition хорош для включения, чтобы вы могли указать правильное имя файла; другие просто помогают браузеру обрабатывать загрузку лучше и могут быть опущены, если вы хотите.

Некоторые изменения в этом коде, чтобы он работал в моем случае. – Для MP3-файлов

Вы можете вызвать это, вызвав этот файл filedownload.php – поместите его на свой сервер.

Вызовите его из файла, например: из поля WordPress Custom в этом примере

 <a href="<?php bloginfo('url'); ?>/filedownload.php?download=<?php echo get_post_meta($post->ID, 'mymp3_value', true) ?>">MP3</a> 

Очень просто сделать.

 <?php $name_of_file = $_GET["download"]; header('Content-Description: File Transfer'); // We'll be outputting a MP3 header('Content-type: application/mp3'); // It will be called file.mp3 header('Content-Disposition: attachment; filename=' .$name_of_file); header('Content-Length: '.filesize($name_of_file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); // The MP3 source is in somefile.pdf //readfile("somefile.mp3"); readfile_chunked($name_of_file); function readfile_chunked($filename) { $chunksize = 1*(1024*1024); // how many bytes per chunk $buffer = ''; $handle = fopen($filename, 'rb'); if ($handle === false) { return false; } while (!feof($handle)) { $buffer = fread($handle, $chunksize); print $buffer; } return fclose($handle); } ?>