Referência rápida de formatos de arquivo para desenvolvedores
No desenvolvimento de aplicações web, conhecimentos sobre formatos de arquivo são frequentemente necessários, como validação de arquivo, determinação de tipo MIME e design de limites de upload. Este artigo reúne os formatos de arquivo comumente usados em ambientes de desenvolvimento em uma lista. Ao adicionar aos favoritos, você pode usar como referência rápida consultável a qualquer momento.
Formato de imagem
| Extensão | Tipo MIME | Compressão | Transparência | usos principais |
|---|---|---|---|---|
.png |
image/png |
Reversível | Resposta | Screenshots, logotipos, ícones |
.jpg / .jpeg |
image/jpeg |
Sem perdas | Não suportado | Fotos, miniaturas |
.gif |
image/gif |
Reversível | Resposta (1bit) | Animação, diagrama simples |
.webp |
image/webp |
ambos | Resposta | Web em geral (Candidato a sucessor do PNG) |
.avif |
image/avif |
ambos | Resposta | Imagens Web de próxima geração |
.svg |
image/svg+xml |
Nenhum (XML) | Resposta | Imagens vetoriais, ícones |
<strong>Atenção:</strong> SVG é baseado em XML, portanto há risco de XSS (Cross-Site Scripting). É perigoso exibir SVGs enviados por usuários diretamente. Sempre execute o processamento de sanitização.
Formato de documento
| Extensão | Tipo MIME | Estrutura interna | usos principais |
|---|---|---|---|
.pdf |
application/pdf |
Binário | Documentos para impressão, formulários |
.docx |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
ZIP(XML) | Documento do Word |
.xlsx |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ZIP(XML) | Planilha do Excel |
.pptx |
application/vnd.openxmlformats-officedocument.presentationml.presentation |
ZIP(XML) | Apresentação do PowerPoint |
Formato de arquivo
| Extensão | Tipo MIME | Características | Pontos de atenção |
|---|---|---|---|
.zip |
application/zip |
Mais amplamente distribuído, compatível com padrão do SO | Corrupção de nome de arquivo em japonês (UTF-8 vs CP932) |
.tar.gz |
application/gzip |
Padrão Unix/Linux | No Windows, ferramentas de expansão podem ser necessárias em alguns casos |
.7z |
application/x-7z-compressed |
Alta taxa de compressão | Ferramenta dedicada (7-Zip) necessária |
.rar |
application/vnd.rar |
Suporte a arquivo dividido | Formato proprietário |
Formato de dados de texto
| Extensão | Tipo MIME | Uso | Problemas comuns |
|---|---|---|---|
.csv |
text/csv |
Troca de dados, importação/exportação | Codificação de caracteres, códigos de quebra de linha, BOM |
.json |
application/json |
Comunicação da API, arquivo de configuração | UTF-8 obrigatório (RFC 8259) |
.xml |
application/xml |
Arquivo de configuração, troca de dados | Incompatibilidade com declaração de codificação |
.txt |
text/plain |
Log, notas, README | A detecção automática de codificação é instável |
Validação de tipo MIME
Ao implementar a funcionalidade de upload de arquivo, é importante validar não apenas a extensão, mas também o tipo MIME. Entretanto, como o tipo MIME pode ser falsificado no lado do cliente, use também a verificação de magic byte (cabeçalho de arquivo) no lado do servidor.
// PHP でのマジックバイトによる判定
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($_FILES['upload']['tmp_name']);
$allowedTypes = [
'image/png',
'image/jpeg',
'image/webp',
'application/pdf',
];
if (!in_array($mimeType, $allowedTypes, true)) {
throw new Exception('許可されていないファイル形式です');
}
// Node.js での file-type ライブラリを使った判定
import { fileTypeFromFile } from 'file-type';
const type = await fileTypeFromFile('upload.png');
console.log(type);
// { ext: 'png', mime: 'image/png' }
Download de arquivo de teste
Para testar a validação e as funcionalidades de upload de cada formato, utilize os arquivos de teste do DevLab.
- <a href="/ja/files/images/">Arquivo de imagem</a> — Vários tamanhos de PNG, JPG, WebP, GIF
- <a href="/ja/files/pdf/">Arquivos PDF</a> — Arquivos de teste PDF em vários tamanhos
- <a href="/ja/files/zip/">Arquivo ZIP</a> — Teste de processamento de arquivo
- <a href="/ja/files/csv/">Arquivo CSV</a> — Teste de importação de dados
- <a href="/ja/files/json/">Arquivos JSON</a> — Para testes de API
- <a href="/ja/files/txt/">Arquivo de texto</a> — Teste de processamento de texto
- <a href="/ja/files/broken/">Arquivo quebrado</a> — Teste de tratamento de erros
Resumo
A compreensão correta do formato de arquivo é a base para implementar uma funcionalidade de upload segura e robusta. Valide não apenas a extensão, mas também o tipo MIME e os magic bytes para realizar uma validação adequada. Recomendamos marcar esta referência nos favoritos para poder consultá-la a qualquer momento durante o desenvolvimento.
Arquivo de teste disponível para usar neste artigo
- → <a href="/ja/files/images/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste de imagem (PNG / JPG / WebP / GIF)</a>
- → <a href="/ja/files/pdf/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste PDF</a>
- → <a href="/ja/files/zip/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste ZIP</a>
- → <a href="/ja/files/csv/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste CSV</a>
- → <a href="/ja/files/json/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste JSON</a>
Artigos relacionados
- → <a href="/ja/blog/file-validation-checklist/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de verificação de implementação de validação de arquivo para formulários web</a>
- → <a href="/ja/reference/magic-bytes/" class="text-primary-600 dark:text-primary-400 hover:underline">Referência de Magic Bytes (Assinatura de Arquivo)</a>