【SpringBoot】-- 实现本地文件/图片上传到服务器生成url地址
在Spring Boot中实现本地文件/图片上传并生成URL地址,你可以使用MultipartFile
接口来处理上传的文件,并使用Spring的ResourceLoader
来获取文件的URL。以下是一个简单的例子:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 创建一个控制器来处理文件上传:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
@RestController
public class FileUploadController {
@Value("${upload.path}")
private String uploadPath;
private final ResourceLoader resourceLoader;
public FileUploadController(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
if (file.isEmpty()) {
return "文件为空";
}
// 确定文件存储路径
String filename = file.getOriginalFilename();
File destFile = new File(Paths.get(uploadPath, filename).toString());
// 保存文件
file.transferTo(destFile);
// 生成URL
String fileUrl = resourceLoader.getResource("file:" + uploadPath).getURI().toString();
return "文件上传成功,URL: " + fileUrl + filename;
}
}
- 在
application.properties
中配置上传路径:
upload.path=/path/to/your/upload/directory
- 运行Spring Boot应用,并使用POST请求上传文件。
确保上传的目录对Spring Boot应用有写权限,并且正确配置了服务器的静态资源映射,以便能够通过生成的URL访问文件。
评论已关闭