У меня такая ситуация, когда у нас есть медиафайлы, хранящиеся в глобальном CDN. Наше веб-приложение размещается на его собственном сервере, а затем, когда нужны медиа-ресурсы, они вызываются из URL CDN. Недавно у нас была страница, на которой пользователь мог загружать вложения файлов, однако некоторые типы файлов открывались в браузере вместо загрузки (например, MP3). Единственный способ обойти это - вручную указать HTTP-ответ для прикрепления файла, но единственный способ, которым я смог добиться этого, - это загрузить файл из CDN на мой сервер и затем передать его обратно пользователю, что лишает его цели на глобальном CDN. Вместо этого мне интересно, есть ли какое-нибудь решение на стороне клиента для этого?
РЕДАКТИРОВАТЬ: Просто где-то нашел это, хотя я не уверен, будет ли это работать правильно во всех браузерах?
<body>
<script>
function downloadme(x){
myTempWindow = window.open(x,'','left=10000,screenX=10000');
myTempWindow.document.execCommand('SaveAs','null','download.pdf');
myTempWindow.close();
}
</script>
<a href=javascript:downloadme('/test.pdf');>Download this pdf</a>
</body>
РЕДАКТИРОВАТЬ: Ну что ж, так много за эту идею -> Работает ли execCommand SaveAs в Firefox?