Pular para o conteúdo
Código e Café com PauloDev: Explorando o Universo da Programação

Código e Café com PauloDev: Explorando o Universo da Programação

Explore o universo da programação e tecnologia com PauloDev. Descubra insights, tutoriais e inovações que moldam o futuro digital. De linhas de código a ideias revolucionárias, embarque nesta jornada tech onde a paixão pela inovação se encontra com a expertise do desenvolvimento. Seja bem-vindo ao blog que transforma códigos em narrativas de vanguarda, guiado pela visão única de PauloDev no vasto panorama tecnológico.

  • Meu portifolio

Desenvolvendo Upload de Arquivos com Spring Boot

13 de fevereiro de 2024
Por Paulo In Back-end, Java

Desenvolvendo Upload de Arquivos com Spring Boot

O upload de arquivos é uma funcionalidade crucial em muitas aplicações modernas, permitindo que os usuários enviem e compartilhem diversos tipos de conteúdo, como imagens, documentos, vídeos, entre outros. No contexto do desenvolvimento web, o Spring Boot oferece uma abordagem simples e eficiente para implementar essa funcionalidade. Neste artigo, exploraremos como criar um sistema de upload de arquivos utilizando o Spring Boot.

Por que fazer o Upload de Arquivos?

O upload de arquivos é essencial em diversas situações, como em aplicações de gerenciamento de documentos, redes sociais, armazenamento em nuvem, e-commerce, entre outros. Permite que os usuários enviem conteúdo personalizado, enriquecendo a interação na plataforma. Além disso, é uma ferramenta poderosa para compartilhamento e colaboração.

Cenários de Utilização:

  1. Redes Sociais: Permitir que usuários compartilhem imagens e vídeos.
  2. E-commerce: Upload de fotos para produtos.
  3. Sistemas de Gerenciamento de Documentos: Envio de documentos para armazenamento e organização.
  4. Colaboração em Nuvem: Compartilhamento de arquivos para trabalho colaborativo.

Agora, vamos mergulhar no código e criar um sistema simples de upload de arquivos usando o Spring Boot.

Configuração Inicial

No arquivo application.properties, definimos a pasta onde os arquivos serão salvos:

file.upload-dir=uploads

Em seguida, criamos uma classe FileStorageProperties para carregar as propriedades relacionadas aos arquivos:

@Configuration
@ConfigurationProperties(prefix = "file")
public class FileStorageProperties {
    private String uploadDir;

    public String getUploadDir() {
        return uploadDir;
    }

    public void setUploadDir(String uploadDir) {
        this.uploadDir = uploadDir;
    }
}

Controller para Upload de Arquivos

Agora, implementamos o FileStorageController, responsável pelo upload, injetando as propriedades necessárias:

@Controller
@RequestMapping("/api/files")
public class FileStorageController {
    private final Path fileStorageLocationPath;

    public FileStorageController(FileStorageProperties fileStorageProperties) {
        this.fileStorageLocationPath = Paths.get(fileStorageProperties.getUploadDir())
                .toAbsolutePath().normalize();
    }

    @PostMapping("/upload")
    public void uploadFile(@RequestParam("file") MultipartFile file) {
        String fileName = StringUtils.cleanPath(file.getOriginalFilename());
        try {
            Path targetLocation = fileStorageLocationPath.resolve(fileName);
            file.transferTo(targetLocation);
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
}

Detalhes do Método de Upload

  • MultipartFile file: Representa o binário do arquivo enviado na requisição.
  • String fileName = StringUtils.cleanPath(file.getOriginalFilename()): Recupera o nome original do arquivo, limpando-o para evitar nomes maliciosos.
  • file.transferTo(targetLocation): Salva o arquivo no diretório especificado.

Configurações Adicionais

Podemos configurar limites para o tamanho máximo de cada arquivo e o tamanho total por requisição no application.properties:

spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=20MB

Além disso, é possível adicionar validações de tipo de arquivo e outras regras conforme necessário, consultando a documentação oficial da API Path do Java.

Conclusão

Este é um ponto de partida básico para implementar o upload de arquivos com o Spring Boot. À medida que a aplicação evolui, considere aprimorar a segurança, implementar validações adicionais e personalizar conforme as necessidades específicas do projeto.

Promoção
Written by:

Paulo

Ver todos os posts

Categorias

  • Android
  • Android Studio
  • Angular
  • API
  • AWS
  • Back-end
  • Bash
  • Boas Práticas
  • CSharp
  • CSS
  • Django
  • Docker
  • Electron
  • Front-end
  • Git
  • Github
  • Html
  • Http
  • Java
  • JavaScript
  • Laravel
  • Linha de comando
  • Linux
  • Machine Learning
  • Metodologias
  • Mysql
  • Node
  • NoSql
  • PHP
  • Power Shell
  • Python
  • Segurança
  • Sem categoria
  • SQL
  • Tecnologia
  • Testes
  • VueJs
  • Windows

Últimos posts

  • Python para o desenvolvimento Web: Como o Django pode alavancar na escrita do seu código
  • Conheça as Transactions e como elas podem te ajudar a testar o seu sistema
  • Melhorando a performance dos seus projetos PHP, conheça o OPCache e o JIT
  • Redis com Laravel: Uma ferramenta poderosa para o escalonamento horizontal da sua aplicação
  • Conhecendo e configurando um servidor de Load Balance com YARP e NGINX

© Todos os direitos reservados PauloDev 2023