springboot头像上传回显
时间: 2023-09-12 11:10:34 浏览: 58
在Spring Boot中,实现头像上传并回显的步骤如下:
1. 添加文件上传依赖
在`pom.xml`中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
```
2. 编写上传页面
在HTML页面中添加上传表单:
```html
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="Upload"/>
</form>
```
3. 编写上传接口
在控制器中添加上传接口:
```java
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file, Model model) {
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
try {
FileUploadUtil.saveFile(uploadDir, fileName, file);
} catch (IOException e) {
e.printStackTrace();
}
model.addAttribute("message", "File uploaded successfully!");
model.addAttribute("fileName", fileName);
return "upload-result";
}
```
其中,`FileUploadUtil`是一个工具类,用于保存文件:
```java
public class FileUploadUtil {
public static void saveFile(String uploadDir, String fileName, MultipartFile multipartFile) throws IOException {
Path uploadPath = Paths.get(uploadDir);
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
try (InputStream inputStream = multipartFile.getInputStream()) {
Path filePath = uploadPath.resolve(fileName);
Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ioe) {
throw new IOException("Could not save image file: " + fileName, ioe);
}
}
}
```
4. 显示上传结果
在上传成功后,跳转到上传结果页面,显示上传的文件名和头像:
```html
<h1>Upload Result</h1>
<p th:text="'File uploaded successfully: ' + ${fileName}"></p>
<img th:src="@{${'/uploads/' + fileName}}" width="200" height="200"/>
```
其中,`/uploads/`是上传文件保存的目录。需要在`application.properties`中添加以下配置:
```properties
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=215MB
# Upload directory for files
file.upload-dir=uploads
```
在控制器中添加注入`uploadDir`的代码:
```java
@Value("${file.upload-dir}")
private String uploadDir;
```
5. 运行应用程序
现在,启动Spring Boot应用程序并访问上传页面。选择要上传的文件并单击“上传”按钮。上传成功后,将显示上传结果页面,并显示上传的文件名和头像。