aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/http/headers/content-disposition/index.html
blob: ac69826256ebcbe615545d9b9ce7ca87498d895c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
title: Content-Disposition
slug: Web/HTTP/Headers/Content-Disposition
tags:
  - Cabeçalho Geral
  - Cabeçalho de Resposta
  - HTTP
  - Reference
  - Referencia
  - cabeçalho
translation_of: Web/HTTP/Headers/Content-Disposition
---
<div>{{HTTPSidebar}}</div>

<div>Em uma resposta HTTP normal, o cabeçalho de resposta <code><strong>Content-Disposition</strong></code> indica se o conteúdo é esperado a ser exibido <em>inline</em> no navegador, isso significa, como uma página Web ou parte de uma, ou como um anexo, que é baixado e salvo localmente.</div>



<p>Em um corpo <code>multipart/form-data</code>, o cabeçalho geral HTTP <strong><code>Content-Disposition</code></strong> é um cabeçalho que pode ser utilizado em uma subparte de um corpo multipartes para dar informações sobre o campo a que ele se aplica. A subparte é delimitada pelo limite definido no cabeçalho {{HTTPHeader("Content-Type")}}. Usado no corpo em si, <code>Content-Disposition</code> não tem efeito.</p>

<p>O cabeçalho <code>Content-Disposition</code> é definido em um grande contexto de mensagens MIME para e-mail, mas somente um subconjunto dos possíveis parâmetros são aplicados à formulários HTTP e requisições {{HTTPMethod("POST")}} requests. Somente o valor <code>form-data</code>, assim como a diretiva opcional <code>name</code> e <code>filename</code>, podem ser usadas no contexto HTTP.</p>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Tipo de cabeçalho</th>
   <td>{{Glossary("Response header")}} (para o corpo principal)<br>
    {{Glossary("General header")}} (para a subparte de um corpo multipartes)</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Forbidden header name")}}</th>
   <td>não</td>
  </tr>
 </tbody>
</table>

<h2 id="Sintaxe">Sintaxe</h2>

<h3 id="Como_cabeçalho_de_resposta_para_o_corpo_principal">Como cabeçalho de resposta para o corpo principal</h3>

<p>O primeiro parâmetro no contexto HTTP ou é <code>inline</code> (valor padrão, indicando que ele pode ser mostrado dentro de uma página Web, ou como uma página Web) ou <code>attachment</code> (indicando que ele devev ser baixado; a maioria dos navegadores apresenta uma caixa de diálogo "Salvar como", pré-preenchido com o valor do parâmetro <code>filename</code> se presente).</p>

<pre class="syntaxbox">Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"</pre>

<h3 id="Como_cabeçalho_para_um_corpo_multipartes">Como cabeçalho para um corpo multipartes</h3>

<p>O primeiro parâmetro no contexto HTTP é sempre o <code>form-data</code>. Parâmetros adicionais são <em>case-insensitive </em>e possuem argumentos que usam a sintaxe de cadeia de caracteres delimitadas por aspas depois do sinal <code>'='</code>. Múltiplos parâmetros são separados por um ponto e vírgula (<code>';'</code>).</p>

<pre class="syntaxbox">Content-Disposition: form-data
Content-Disposition: form-data; name="fieldName"
Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"</pre>

<h3 id="Diretivas">Diretivas</h3>

<dl>
 <dt><code>name</code></dt>
 <dd>O nome é seguido por uma cadeia de caracteres contendo o nome do campo HTML no formulário que o conteúdo dessa subparte se refere. Quando lidando com múltiplos arquivos no mesmo campo (por exemplo, o atributo {{htmlattrxref("multiple", "input")}} de um elemento <code>{HTMLElement("input","&lt;input type=\"file\"&gt;")}}</code>), podem haver diversas subpartes com o mesmo nome.</dd>
 <dd>Um <code>name</code> com o valor de <code>'_charset_'</code> indica que a parte não é um campo HTML, mas uma codificação para usar em partes sem explicitar a informação de codificação.</dd>
 <dt><code>filename</code></dt>
 <dd>É seguido por uma cadeia de caracteres contendo o nome original do arquivo transmitido. O nome do arquivo é sempre opcional e não deve ser usado cegamente pela aplicação: informação de caminho deve ser removida, e conversão para as regras do sistema de arquivo do servidor devem ser feitas. Este parâmetro provém a maior parte da informação indicativa. Quando usado em combinação com <code>Content-Disposition: attachment</code>, ele é usado como nome de arquivo padrão para uma eventual caixa de diálogo "Salvar como" apresentado ao usuário.</dd>
 <dt><code>filename*</code></dt>
 <dd>
 <p>Os parâmetros "filename" e "filename*" se diferenciam somente no fato de que "filename*" usa a codificação definida na <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>. Quando ambos "filename" e "filename*" estão presentes em um único campo de valor do cabeçalho, "filename*" é preferido sobre "filename" quando ambos são entendidos.</p>
 </dd>
</dl>

<h2 id="Exemplos">Exemplos</h2>

<p>Uma resposta ativando a caixa de diálogo "Salvar como":</p>

<pre>200 OK
Content-Type: text/html; charset=utf-8
Content-Disposition: attachment; filename="cool.html"
Content-Length: 21

&lt;HTML&gt;Me salve!&lt;/HTML&gt;
</pre>

<p>O simples arquivo HTML será salvo como um download regular ao invés de ser mostrado no navegador. A maioria dos navegadores irá propôr salvar o arquivo como nome de <code>cool.html</code> (por padrão).</p>

<p>Um exemplo de um formulário de HTML postado usando o formato <code>multipart/form-data</code> que faz o uso do cabeçalho <code>Content-Disposition</code>:</p>

<pre>POST /test.html HTTP/1.1
Host: example.org
Content-Type: multipart/form-data;boundary="boundary"

--boundary
Content-Disposition: form-data; name="field1"

value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"

value2
--boundary--</pre>

<h2 id="Especificações">Especificações</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificação</th>
   <th scope="col">Título</th>
  </tr>
  <tr>
   <td>{{RFC("7578")}}</td>
   <td>Returning Values from Forms: multipart/form-data</td>
  </tr>
  <tr>
   <td>{{RFC("6266")}}</td>
   <td>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</td>
  </tr>
  <tr>
   <td>{{RFC("2183")}}</td>
   <td>Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>

<p>{{Compat("http.headers.Content-Disposition")}}</p>

<h2 id="Notas_de_compatibilidade">Notas de compatibilidade</h2>

<ul>
 <li>Firefox 5 lida com o cabeçalho de resposta HTTP <code>Content-Disposition</code> mais efetivamente se ambos parâmetros <code>filename</code> e <code>filename*</code> são providos; ele olha através de todos os nomes providenciados, usando o parâmetro <code>filename*</code> se um estiver disponível, mesmo se o parâmetro <code>filename</code> estiver incluído primeiro. Anteriormente, o primeiro parâmetro que combinasse seria utilizado, Previously, the first matching parameter would be used, desse modo prevenindo um nome mais apropriado de ser utilizado. Veja {{bug(588781)}}.</li>
</ul>

<h2 id="Veja_também">Veja também</h2>

<ul>
 <li><a href="/en-US/docs/Web/Guide/HTML/Forms">Formulários HTML</a></li>
 <li>O cabeçalho {{HTTPHeader("Content-Type")}} definindo o limite do corpo multipartes.</li>
 <li>A interface {{domxref("FormData")}} usada para manipular dados de formulários para uso na API {{domxref("XMLHttpRequest")}}.</li>
</ul>