Um programa web para partilha segura de ficheiros localmente em rede local (LAN) utilizando Spring Boot. Permite que múltiplos utilizadores façam upload e acesso a ficheiros através de uma interface intuitiva.
- Sobre
- Funcionalidades
- Requisitos do Sistema
- Como Fazer Build
- Como Executar
- Estrutura do Projeto
- Endpoints da API
- Configuração
- Tecnologias Utilizadas
- Changelog
Springfile é uma aplicação web construída com Spring Boot que facilita o compartilhamento de ficheiros em ambiente de rede local. A aplicação funciona como um servidor centralizado onde os utilizadores podem fazer upload de ficheiros e acessar uma listagem de todos os ficheiros disponíveis.
Ideal para:
- Partilha de ficheiros rápida entre computadores na mesma rede
- Transferência de ficheiros sem necessidade de configurações complexas
- Ambientes corporativos internos
- Educação e colaboração em grupo
- Upload de Ficheiros: Suporte para upload de múltiplos ficheiros através da interface web
- Listagem de Ficheiros: Visualização de todos os ficheiros disponíveis com informações de nome e tamanho
- Interface Web Responsiva: UI intuitiva e fácil de usar
- Gestão Automática: Limpeza automática de ficheiros temporários
- Compatibilidade Cross-Platform: Funciona em Windows, Linux e macOS
- Java 25 ou superior (JDK)
- Maven 3.6+ (para compilação)
- 4GB de RAM (recomendado)
- Espaço em disco: Depende do volume de ficheiros a partilhar
- Acesso à mesma rede local (LAN)
- Porta 1000 disponível (por padrão)
- Firewall configurado para permitir conexões na porta da aplicação
As dependências são geridas automaticamente pelo Maven:
- Spring Boot 4.0.6 (Framework principal)
- Spring Boot Web MVC (Servidor web)
- Thymeleaf (Motor de templates HTML)
- JSON (org.json) (Processamento de JSON)
- Spring Boot DevTools (Desenvolvimento)
-
Verificar se Java 25 está instalado:
java -version
-
Verificar se Maven está instalado:
mvn -version
-
Navegar até à pasta do projeto:
cd caminho\para\springfile
-
Limpar builds anteriores (opcional):
mvn clean
-
Compilar o projeto:
mvn compile
-
Criar o pacote JAR:
mvn package
O ficheiro JAR será criado em:
target/springfile-0.0.1-SNAPSHOT.jar
cd /caminho/para/springfile
# Limpar e compilar
mvn clean compile
# Criar pacote
mvn packagePara fazer build completo incluindo testes:
mvn clean installPara fazer build sem executar testes:
mvn clean package -DskipTestsApós compilação com sucesso, encontrará:
target/springfile-0.0.1-SNAPSHOT.jar- Aplicação executáveltarget/springfile-0.0.1-SNAPSHOT-jar-with-dependencies.jar- JAR com todas as dependências
java -jar target/springfile-0.0.1-SNAPSHOT.jarmvn spring-boot:runmvn clean spring-boot:runApós iniciar, abra o navegador e aceda a:
http://localhost:1000
Se estiver noutra máquina da rede:
http://<IP_DO_SERVIDOR>:1000
Para encontrar o IP do servidor (Windows):
ipconfigPara encontrar o IP do servidor (Linux/macOS):
ifconfig
# ou
hostname -Ispringfile/
├── src/
│ ├── main/
│ │ ├── java/com/cledsonvilanculo/springfile/
│ │ │ ├── App.java # Classe principal
│ │ │ ├── SpringfileApplication.java # Configuração Spring Boot
│ │ │ ├── configuration/
│ │ │ │ └── WebConfig.java # Configurações web
│ │ │ ├── controllers/
│ │ │ │ └── HomeController.java # Controladores da aplicação
│ │ │ └── services/
│ │ │ └── FileManagerService.java # Serviço de gestão de ficheiros
│ │ └── resources/
│ │ ├── application.properties # Configurações da aplicação
│ │ ├── static/ # Ficheiros estáticos
│ │ │ ├── fonts/ # Fontes
│ │ │ ├── javascript/
│ │ │ │ └── home.js # JavaScript frontend
│ │ │ └── style/
│ │ │ └── home.css # Estilos CSS
│ │ └── templates/
│ │ └── index.html # Template HTML principal
│ └── test/ # Testes unitários
├── target/ # Artefatos compilados (gerado)
├── pom.xml # Configuração Maven
├── mvnw / mvnw.cmd # Maven Wrapper (para executar sem Maven instalado)
└── README.md # Este ficheiro
Retorna a página principal da aplicação.
Resposta: HTML da página web
Retorna a lista de todos os ficheiros disponíveis em formato JSON.
Resposta:
[
{
"nome": "documento.pdf",
"tamanho": 2048576
},
{
"nome": "imagem.jpg",
"tamanho": 1024768
}
]Faz upload de um ou múltiplos ficheiros.
Parâmetros:
files(FormData): Array de ficheiros para fazer upload
Resposta:
true // Sucesso
false // ErroExemplo com curl:
curl -X POST -F "files=@ficheiro.pdf" http://localhost:1000/uploadOs ficheiros são armazenados em:
Windows:
C:/springfile/files/
Linux/macOS:
/springfile/files/
Para alterar este caminho, edite FileManagerService.java e altere a variável diretorioDestino.
Para alterar a porta padrão (1000), edite application.properties:
server.port=1000| Tecnologia | Versão | Descrição |
|---|---|---|
| Java | 25 | Linguagem de programação |
| Spring Boot | 4.0.6 | Framework web |
| Maven | 3.6+ | Gestor de dependências |
| Thymeleaf | Latest | Motor de templates HTML |
| JSON | 20260522 | Processamento de JSON |
| HTML5/CSS3 | - | Frontend |
| JavaScript | - | Interatividade frontend |
Versão Atual: 1.1