La disposizione dei contenuti è un'estensione del protocollo MIME, che istruisce l'agente utente MIME a visualizzare i file allegati. Quando Internet Explorer riceve l'intestazione elettorale, attiva la finestra di dialogo per il download del file e la casella del nome file viene automaticamente popolata con il nome specificato nell'intestazione. (Si noti che ciò è causato dal design; Non puoi usare questa funzione per salvare un documento sul computer di un utente senza chiedere dove salvarlo. )
Quando il server invia un file al browser client, se è un tipo di file supportato dal browser, generalmente verrà aperto di default usando il browser, come txt, jpg, ecc., che verranno visualizzati direttamente nel browser; se l'utente deve essere invitato a salvare, è necessario usare Content-Disposition per elaborarlo, la chiave è aggiungere allegato:
Response.AppendHeader("Content-Disposition","allegato; filename=FileName.txt");
Nota: Questo ti chiederà di salvare o aprirlo, e anche se scegli di aprirlo, lo aprirà con il programma associato come Notepad, invece di aprire direttamente per IE.
La Content-Disposition consiste nel fornire un nome file predefinito quando l'utente vuole salvare il contenuto richiesto come file. Le definizioni specifiche sono le seguenti:
content-disposition = "content-disposition" ":"
Tipo di disposizione *( ";" disposizione-parm )
Tipo di disposizione = "attacco" | disp-extension-token
disposizione-parm = filename-parm | disp-extension-parm
Nomefile-parm = "Nome file" "= = stringa-virgolette
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )
Quindi possiamo vedere esempi specifici da quanto sopra:
Cache-Control:private
Content-Disposition:attachment; filename=Index1.png
Content-Length:328462
Content-Type:image/png
Date:Fri, 14 Oct 2016 01:08:04 GMT
Server:Microsoft-IIS/8.0
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:5.2
X-Powered-By:ASP.NET
Content-Disposition: attachment; filename=“filename.xls”
Ovviamente, il parametro del nome file può contenere informazioni sul percorso, ma User-Agnet ignorerà queste informazioni e userà solo l'ultima parte delle informazioni del percorso come nome del file. Se usi questo header nell'applicazione/flusso di ottetto di risposta, significa che non vuoi mostrare direttamente il contenuto, ma apparirà una finestra di dialogo "download file", e poi spetta a te decidere se "aprire" o "salvare".
Note:
1. Quando si utilizza Content-Disposition nel codice per assicurarsi che il browser appra la finestra di dialogo di download. response.addHeader("Content-Disposition","allegato"); Assicurati di non aver fatto nulla per disabilitare la cache del browser. Come segue:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("Scadenza", 0);
|