Não.
O tipo de conteúdo deve ser o que é conhecido, se você o conhece. application/octet-stream
é definido como "dados binários arbitrários" na RFC 2046, e há aqui uma sobreposição definitiva, sendo apropriado para entidades cujo único objetivo pretendido é ser salvo em disco e, a partir desse momento, estar fora de qualquer coisa "webby". Ou olhar de outra direção; a única coisa que se pode fazer com segurança com o application / octet-stream é salvá-lo em um arquivo e esperar que alguém saiba para que serve.
Você pode combinar o uso Content-Disposition
com outros tipos de conteúdo, como image/png
ou mesmo text/html
para indicar que deseja salvar, em vez de exibir. Costumava ser o caso de alguns navegadores ignorá-lo, text/html
mas acho que isso foi há muito tempo neste momento (e eu vou dormir logo, então não vou começar a testar um monte de navegadores agora; talvez mais tarde).
A RFC 2616 também menciona a possibilidade de tokens de extensão e, atualmente, a maioria dos navegadores reconhece inline
que você deseja que a entidade seja exibida, se possível (ou seja, se é um tipo que o navegador sabe exibir, caso contrário, não há escolha). . É claro que esse é o comportamento padrão, mas significa que você pode incluir a filename
parte do cabeçalho que os navegadores usarão (talvez com algum ajuste para que as extensões de arquivo correspondam às normas do sistema local para o tipo de conteúdo em questão, talvez não) como sugestão, se o usuário tentar salvar.
Conseqüentemente:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Significa "Não sei o que diabos é isso. Salve-o como um arquivo, de preferência chamado picture.png".
Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Significa "Esta é uma imagem PNG. Salve-a como um arquivo, de preferência com o nome picture.png".
Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Significa "Esta é uma imagem PNG. Exiba-a, a menos que você não saiba como exibir imagens PNG. Caso contrário, ou se o usuário optar por salvá-la, recomendamos o nome picture.png para o arquivo que você salvou como".
Naqueles navegadores que reconhecem que inline
alguns sempre o usariam, enquanto outros o usariam se o usuário selecionasse "salvar link como", mas não se selecionasse "salvar" enquanto visualizava (ou pelo menos o IE costumava ser assim). pode ter mudado alguns anos atrás).
attachment
poderia ser considerado "melhor não exibir isso sozinho" einline
"melhor exibir isso sozinho, se puder". De qualquer forma, a maioria dos navegadores usará o valor do nome do arquivo como o nome sugerido do arquivo, mas os usuários sempre poderão substituí-lo.