Как создать ссылку для загрузки в HTML?

У меня есть основная идея HTML. Я хочу создать ссылку для загрузки на своем веб-сайте, но у меня нет идеи о ее создании. Как создать ссылку для загрузки файла, а не посещать его?

Ответ 1

Этот ответ устарел. Теперь у нас есть атрибут download, как описано здесь.

Если по ссылке "скачать" вы имеете в виду ссылку на файл для загрузки, используйте

  <a href="http://example.com/files/myfile.pdf" target="_blank">Download</a>

target=_blank создаст новое окно браузера перед началом загрузки. Это окно обычно закрывается, когда браузер обнаруживает, что ресурс является загрузкой файла.

Обратите внимание, что типы файлов, известные браузеру (например, JPG или GIF-изображения), обычно будут открываться в браузере.

Вы можете попробовать отправить правильные заголовки, чтобы принудительно загрузить, например, наброски, например. здесь. (для этого требуется сценарий на стороне сервера или доступ к настройкам сервера.)

Ответ 2

В современных браузерах, поддерживающих HTML5, возможно следующее:

<a href="link/to/your/download/file" download>Download link</a>

Вы также можете использовать это:

<a href="link/to/your/download/file" download="filename">Download link</a>

Это позволит вам изменить имя загружаемого файла.

Ответ 3

Кроме того (или заменяя) уже упомянутый атрибут HTML5 <a download,
поведение загрузки браузера на диск также может быть вызвано следующим заголовком ответа HTTP:

Content-Disposition: attachment; filename=ProposedFileName.txt;

Это был способ сделать до HTML5 (и по-прежнему работает с браузерами, поддерживающими HTML5).

Ответ 4

Ссылка для загрузки будет ссылкой на ресурс, который вы хотите загрузить. Он построен так же, как и любая другая ссылка:

<a href="path to resource.name of file">Link</a>

<a href="files/installer.exe">Link to installer</a>

Ответ 5

Чтобы создать ссылку на файл, сделайте то же самое, что и любая другая ссылка на страницу:

<a href="...">link text</a>

Чтобы заставить загружать вещи, даже если у них есть встроенный плагин (Windows + QuickTime = ugh), вы можете использовать его в htaccess/apache2.conf:

AddType application/octet-stream EXTENSION

Ответ 6

Этот поток, вероятно, древний, но он работает в html5 для моего локального файла.

Для pdf файлов:

<p><a href="file:///........example.pdf" download target="_blank">test pdf</a></p>

Это должно открыть PDF в новых окнах и позволить вам загрузить его (по крайней мере, в firefox). Для любого другого файла просто укажите его имя. Для изображений и музыки вы хотите сохранить их в том же каталоге, что и ваш сайт. Так что это будет как

<p><a href="images/logo2.png" download>test pdf</a></p>

Ответ 7

Атрибут загрузки не работает в IE, он полностью игнорирует "загрузку". Загрузка не работает в Firefox, если href указывает на удаленный сайт. Так что пример Odin не работает в Firefox 41.0.2.

Ответ 8

Атрибут загрузки является новым для тега <a> в HTML5

<a href="http://www.odin.com/form.pdf" download>Download Form</a>
или
<a href="http://www.odin.com/form.pdf" download="Form">Download Form</a>

Я предпочитаю первый вариант, который предпочтительнее любого расширения.

Ответ 9

Вы можете скачать по-разному, вы можете следовать моим путем. Хотя файлы могут не загружаться из-за того, что разрешение 'allow-popups' не установлено, но в вашей среде это будет работать отлично

<div className="col-6">
                    <a  download href="https://www.w3schools.com/images/myw3schoolsimage.jpg" >Test Download </a>
                </div>

Ответ 10

Есть еще одна тонкость, которая может помочь здесь.

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

НО.. это основано на проверке расширения по имени файла URL! Вы не хотите возиться с отображением расширения сервера, потому что хотите доставить один и тот же файл двумя разными способами. Таким образом, для загрузки вы можете обмануть его, привязав файл к имени, непрозрачному для этого сопоставления расширения, указав на него, а затем используя функцию переименования загрузки, чтобы исправить имя.

<a target="_blank" download="realname.mp3" href="realname.UNKNOWN">Download it</a>
<a target="_blank" href="realname.mp3">Play it</a>

Ответ 11

Подобно этому

<a href="www.yoursite.com/theThingYouWantToDownload">Link name</a>

Итак, файл name.jpg на сайте example.com будет выглядеть следующим образом

<a href="www.example.com/name.jpg">Image</a>

Ответ 12

Я знаю, что опаздываю, но это то, что я получил после 1 часа поиска

 <?php 
      $file = 'file.pdf';

    if (! file) {
        die('file not found'); //Or do something 
    } else {
       if(isset($_GET['file'])){  
        // Set headers
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Disposition: attachment; filename=$file");
        header("Content-Type: application/zip");
        header("Content-Transfer-Encoding: binary");
        // Read the file from disk
        readfile($file); }
    }

    ?>

и для загружаемой ссылки я сделал это

<a href="index.php?file=file.pdf">Download PDF</a>