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

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

10 ответов


этот ответ устарел. Теперь у нас есть как рассказали здесь.

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

AddType application/octet-stream EXTENSION

этот поток, вероятно, уже древний, но это работает в 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>

атрибут загрузки является новым для <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>

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


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


такой

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

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

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

Я знаю, что опоздал, но это то, что я получил после 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>