Ho questa situazione in cui sono memorizzati file multimediali su un CDN globale. La nostra app Web è ospitata sul proprio server e quindi quando le risorse multimediali sono necessarie vengono chiamate dall'URL CDN. Recentemente abbiamo avuto una pagina in cui l'utente può scaricare gli allegati di file, tuttavia alcuni tipi di file si aprivano nel browser anziché scaricare (come MP3). L'unico modo per farlo era specificare manualmente la risposta HTTP per allegare il file, ma l'unico modo per ottenerlo era scaricare il file da CDN sul mio server e poi restituirlo all'utente, il che vanifica lo scopo di averlo sul CDN globale. Invece mi chiedo se c'è qualche soluzione client side per questo?Esiste un modo per "simulare" il comando salva-come con il tasto destro del mouse o forzare il download del file nel browser con JavaScript?
EDIT: Ho trovato questo da qualche parte, anche se non sono sicuro che funzionerà correttamente in tutti i browser?
<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: Oh, bene, tanto per l'idea ->Does execCommand SaveAs work in Firefox?
Supponiamo che non sia possibile configurare il CDN, caricare solo file su di esso? Presumibilmente il CDN esamina il contenuto per scrivere intestazioni HTTP - può essere manipolato in qualche modo? –
Non penso che ci sia una configurazione del genere, ma controllerò nel caso in cui si abbia la possibilità di impostare un metodo di consegna diverso per una determinata cartella, ad esempio. – BigOmega