Disposição de conteúdo: Quais são as diferenças entre "embutido" e "anexo"?

245

Quais são as diferenças entre

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

e

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

Não conheço as diferenças, porque quando uso uma ou outra, sempre recebo um prompt de janela pedindo para baixar o arquivo para as duas. Eu li as especificações, mas não tem noção.

Cleiton
fonte
1
Quando o tipo de disposição está embutido, normalmente não possui um nome de arquivo.
James.garriss 21/03
Apenas para informações de qualquer pessoa: o nome do arquivo ainda pode ser definido com o recurso embutido, embora isso não seja padrão. Chrome, Firefox, IE e Opera respeitam o nome do arquivo, mas o Edge não (2018).
Bugybunny 25/10/19
alguém conhece um recurso para mostrar o que os vários navegadores fazem com o tipo de conteúdo, semelhante ao caniuse for css?
jmoreno

Respostas:

291

Porque quando eu uso um ou outro, recebo um prompt de janela pedindo para baixar o arquivo para os dois.

Esse comportamento depende do navegador e do arquivo que você está tentando veicular. Com o recurso embutido, o navegador tentará abrir o arquivo no navegador.

Por exemplo, se você tiver um arquivo PDF e o Firefox / Adobe Reader, uma disposição em linha abrirá o PDF no Firefox, enquanto o anexo forçará o download.

Se você estiver exibindo um arquivo .ZIP, os navegadores não poderão exibi-lo em linha; portanto, para disposições em linha e anexo, o arquivo será baixado.

jimyi
fonte
7
Apenas uma correção rápida: esse comportamento às vezes é diferente de um contexto móvel. Muitas visualizações da web do aplicativo ignoram a disposição dos anexos e simplesmente as processam no navegador se puderem identificar corretamente o tipo de conteúdo.
mixdev
31

Se estiver embutido, o navegador deve tentar renderizá-lo na janela do navegador. Se não puder, recorrerá a um programa externo, solicitando ao usuário.

Com o anexo, ele irá imediatamente para o usuário e não tentará carregá-lo no navegador, seja ele possível ou não.

Cullen Walsh
fonte
10

Também vale a pena mencionar que o inline tentará abrir os Documentos do Office (xls, doc etc.) diretamente do servidor, o que pode levar a um Prompt de credenciais do usuário.

veja este link:

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

alguém tentou entregar um relatório do Excel do SSRS via ASP.Net -> o usuário sempre era solicitado a inserir as credenciais. Depois de clicar em cancelar no prompt, ele seria aberto mesmo assim ...

Se a disposição do conteúdo estiver marcada como anexo, ela será salva automaticamente na pasta temporária após clicar em abrir e, em seguida, aberta no Excel a partir da cópia local.

pastrami01
fonte