2009-09-08 16 views
206

Quali sono le differenze traContent-Disposition: quali sono le differenze tra "inline" e "attachment"?

Response.AddHeader("Content-Disposition", "attachment;filename=somefile.ext") 

e

Response.AddHeader("Content-Disposition", "inline;filename=somefile.ext") 

non so le differenze, perché quando io uso uno o l'altro ho sempre trovato una finestra del prompt mi ​​chiede di scaricare il file per entrambi. Leggo le specifiche, ma non ha senso.

+1

Quando il tipo di disposizione è in linea, in genere non ha un nome file. –

risposta

251

Perché quando io uso uno o l'altro ho ottenere una finestra del prompt che mi chiedeva di scaricare il file per entrambi.

Questo comportamento dipende dal browser e dal file che si sta tentando di offrire. Con inline, il browser proverà ad aprire il file all'interno del browser.

Ad esempio, se si dispone di un file PDF e Firefox/Adobe Reader, una disposizione in linea aprirà il PDF in Firefox, mentre l'allegato lo imporrà di scaricare.

Se stai servendo un file .ZIP, i browser non saranno in grado di visualizzarlo in linea, quindi per disposizioni in linea e allegati, il file verrà scaricato.

+0

@jimyi, grazie. La tua risposta è stata molto completa. – Cleiton

+3

Solo una rapida correzione: questo comportamento a volte è diverso da un contesto mobile. Molte visualizzazioni Web delle app ignoreranno la disposizione degli allegati e la renderanno semplicemente nel browser se possono identificare correttamente il tipo di contenuto. – mixdev

27

Se è in linea, il browser deve tentare di renderlo all'interno della finestra del browser. Se non può, farà ricorso a un programma esterno, chiedendo all'utente.

Con allegato, verrà immediatamente visualizzato all'utente e non tenterà di caricarlo nel browser, indipendentemente dal fatto che sia possibile o meno.

8

Potrebbe anche essere utile ricordare che inline tenterà di aprire Office Documents (xls, doc ecc.) Direttamente dal server, che potrebbe portare a un prompt delle credenziali utente.

vedere questo link:

http://forums.asp.net/t/1885657.aspx/1?Access+the+SSRS+Report+in+excel+format+on+server

qualcuno ha cercato di fornire un report di Excel da SSRS tramite ASP.Net -> l'utente sempre ottenuto richiesto di immettere le credenziali. Dopo aver fatto clic su Annulla nel prompt, verrà comunque aperto ...

Se la disposizione del contenuto è contrassegnata come Allegato, verrà automaticamente salvata nella cartella temporanea dopo aver fatto clic su Apri e quindi aperta in Excel dalla copia locale.

Problemi correlati