2010-09-14 15 views
6

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?

+1

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? –

+0

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

Odpowiedz

1

Czy Twój CDN pozwalają określić nagłówki HTTP? Na przykład chmura zachodząca na Amazon.

+0

Patrząc teraz na to, czy w Amazon możesz określić różne nagłówki HTTP dla różnych katalogów? Nie mogłem dokonać tak wszechstronnej zmiany lub inne rzeczy zostałyby zerwane. – BigOmega

+0

Wygląda na to, że jest to plik, ale istnieje interfejs API do wykonywania bardziej ogólnych zmian (i klientów). Nie używam go, ale sprawdziłem go i możesz dodać niestandardowe nagłówki HTTP dla każdego pliku. –

0

Znalazłem proste rozwiązanie, które sprawdziło się u mnie. Dodaj parametr adresu URL do nazwy pliku. To oszuka przeglądarkę w obejściu wbudowanych mapowań plików. Na przykład, zamiast http://mydomain.com/file.pdf, ustawić łącze po stronie klienta, aby wskazywał na http://mydomain.com/file.pdf? (dodano znak zapytania)

+0

powinien znajdować się w komentarzu – Pawan