Mam taką sytuację, w której mamy pliki multimedialne przechowywane na globalnym CDN. Nasza aplikacja internetowa jest hostowana na własnym serwerze, a następnie, gdy potrzebne są zasoby multimedialne, są one wywoływane z adresu URL CDN. Ostatnio mieliśmy stronę, na której użytkownik może pobierać załączniki plików, jednak niektóre typy plików otwierały się w przeglądarce zamiast pobierać (np. MP3). Jedynym sposobem na to było ręczne określenie odpowiedzi HTTP w celu dołączenia pliku, ale jedyny sposób, w jaki mogłem to osiągnąć, to pobranie pliku z CDN na mój serwer, a następnie przekazanie go z powrotem do użytkownika, co jest sprzeczne z celem jego posiadania. na globalnym CDN. Zamiast tego zastanawiam się, czy istnieje jakieś rozwiązanie po stronie klienta?Czy istnieje sposób "symulowania" kliknięcia prawym przyciskiem myszy polecenia save-as lub pobrania pliku w przeglądarce za pomocą JavaScript?
EDYCJA: Właśnie znalazłem to gdzieś, choć nie jestem pewien, czy będzie działać poprawnie we wszystkich przeglądarkach?
<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>
RE-EDIT: No cóż, tak wiele dla tego pomysłu ->Does execCommand SaveAs work in Firefox?
Zakładamy, że nie możesz skonfigurować CDN, tylko przesłać do niego pliki? Przypuszczalnie CDN bada zawartość, aby napisać nagłówki HTTP - czy można nimi manipulować w jakikolwiek sposób? –
Nie sądzę, że istnieje jakakolwiek taka konfiguracja, ale sprawdzę na wszelki wypadek pod kątem, że istnieje sposób na ustawienie innej metody dostarczania dla określonego folderu, na przykład. – BigOmega