Upload de arquivos
O Gin torna simples o gerenciamento de uploads de arquivos multipart. O framework fornece métodos integrados no gin.Context para receber arquivos enviados:
c.FormFile(name)— Recupera um único arquivo da requisição pelo nome do campo do formulário.c.MultipartForm()— Analisa todo o formulário multipart, dando acesso a todos os arquivos enviados e valores dos campos.c.SaveUploadedFile(file, dst)— Um método de conveniência que salva um arquivo recebido em um caminho de destino no disco.
Limite de memória
Seção intitulada “Limite de memória”O Gin define um limite de memória padrão de 32 MiB para análise de formulários multipart via router.MaxMultipartMemory. Arquivos dentro desse limite são armazenados em buffer na memória; qualquer coisa além disso é gravada em arquivos temporários no disco. Você pode ajustar esse valor conforme as necessidades da sua aplicação:
router := gin.Default()// Lower the limit to 8 MiBrouter.MaxMultipartMemory = 8 << 20 // 8 MiBNota de segurança
Seção intitulada “Nota de segurança”O nome do arquivo reportado pelo cliente (file.Filename) não deve ser considerado confiável. Sempre sanitize ou substitua-o antes de usá-lo em operações do sistema de arquivos. Veja a documentação sobre Content-Disposition no MDN para detalhes.
Subpáginas
Seção intitulada “Subpáginas”- Arquivo único — Envie e salve um único arquivo por requisição.
- Múltiplos arquivos — Envie e salve múltiplos arquivos em uma requisição.
- Limitar tamanho do upload — Restrinja o tamanho do upload usando
http.MaxBytesReader.