Відповіді:
Ця відповідь застаріла. Тепер у нас є
download
атрибут . (див. також це посилання на MDN )
Якщо під посиланням для завантаження ви маєте на увазі посилання на файл для завантаження, використовуйте
<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>
Це дозволить вам змінити ім’я файла, який фактично завантажується.
На додаток (або в заміну) до <a download
вже згаданого атрибута HTML5, поведінка завантаження
браузера на диск також може бути спровокована наступним заголовком відповіді http:
Content-Disposition: attachment; filename=ProposedFileName.txt;
Це було зроблено до HTML5 (і досі працює з браузерами, що підтримують HTML5).
download
атрибутом
Для посилання на файл зробіть те саме, що і будь-яке інше посилання на сторінку:
<a href="...">link text</a>
Щоб змусити завантажувати речі, навіть якщо у них є вбудований плагін (Windows + QuickTime = ugh), ви можете використовувати це у своєму htaccess / apache2.conf:
AddType application/octet-stream EXTENSION
Ця нитка, мабуть, давньоруська, але це працює в html5 для мого локального файлу.
Для pdfs:
<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>
Атрибут завантаження не працює в IE, він ігнорує "завантаження" повністю. Завантаження не працює на Firefox, якщо href вказує на віддалений сайт. Тож приклад Одіна не працює на Firefox 41.0.2.
Тут є ще одна тонкість, яка може допомогти.
Я хочу мати посилання, які дозволяють відтворювати та відображати в браузері, а також лише для чистого завантаження. Новий атрибут завантаження чудово, але не працює весь час, оскільки примус браузера відтворювати або відображати файл все ще дуже сильний.
АЛЕ ... це засновано на вивченні розширення на ім'я файлу URL-адреси! Ви не хочете поспілкуватися з картографічним розширенням сервера, оскільки ви хочете доставити один і той же файл двома різними способами. Отже, для завантаження ви можете його обдурити, попростуючи посилання файлу на ім’я, непрозоре для цього відображення розширення, вказуючи на нього, а потім скориставшись функцією перейменування для завантаження, щоб виправити ім'я.
<a target="_blank" download="realname.mp3" href="realname.UNKNOWN">Download it</a>
<a target="_blank" href="realname.mp3">Play it</a>
Я сподівався, що просто викинути фіктивний запит в кінці або іншим чином заблукати розширення буде працювати, але, на жаль, це не так.
Ви можете скачати різним способом, яким ви можете слідувати моїм шляхом. Хоча файли можуть не завантажуватися через дозвіл дозволу, не встановлено, але у вашому середовищі це буде чудово працювати
<div className="col-6">
<a download href="https://www.w3schools.com/images/myw3schoolsimage.jpg" >Test Download </a>
</div>
ще один цей, також не вдасться через 'X-Frame-Options' до 'sameorigin'.
<a href="https://www.w3schools.com/images/myw3schoolsimage.jpg" download>
<img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" alt="W3Schools" width="104" height="142">
</a>
Подобається це
<a href="www.yoursite.com/theThingYouWantToDownload">Link name</a>
Так файл name.jpg на сайті example.com виглядатиме так
<a href="www.example.com/name.jpg">Image</a>
./www.example.com/name.jpg
- ви повинні використовувати http://
для абсолютних посилань із вказаним доменом.
Я знаю, що я спізнююсь, але це те, що я отримав після 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>