Как и предполагал Пекка, вы принудительно загружаете файл по обычной HTML-ссылке, отправляя дополнительный заголовок HTTP. Это означает, что вам может потребоваться изменить конфигурацию вашего веб-сервера, чтобы он заработал.
Как правило, нажатие на ссылку не возвращает заголовок Content-Disposition
; настройка, как вы получите диалоговое окно «Сохранить файл ...» для отображения. Заголовки ответа будут выглядеть примерно так:
HTTP/1.1 200 OK
Date: Sun, 21 Aug 2011 11:45:59 GMT
Server: Apache/2.2.14 (Ubuntu)
Content-Disposition: attachment; filename=video.m4v;
Не зная внутренней работы вашего приложения или сайта, я бы предположительно предположил (для удобства пользователей с отключенным JavaScript) вы не используете JS для этого, если это возможно.
Лучше всего внести изменения в конфигурацию вашего веб-сервера. С Apache вы бы сделали что-то вроде:
<FilesMatch "\.m4v$">
<IfModule mod_headers.c>
Header set Content-Disposition "attachment"
</IfModule>
</FilesMatch>
..., который заставит все M4V-файлы отображать диалоговое окно "Сохранить файл ...". Или, если ваше приложение написано на PHP , вы можете сделать:
header('Content-Disposition: attachment; filename="video.m4v"');
На этой странице есть немного JavaScript (возможно, JScript ?), Который вы можете использовать, который работает в Internet Explorer, но не в любом другом браузере:
<a href="javascript:void(0);" onclick="document.execCommand('SaveAs',true,'video.m4v');">Download video</a>