springboot 上传文件到/resources目录
时间: 2024-11-22 18:48:25 浏览: 13
SpringBoot上传文件到本服务器 目录与jar包同级问题
在Spring Boot项目中,如果你想将用户上传的文件存储到`/resources`目录下,通常这不是最佳实践,因为`/resources`目录下的内容会在打包成jar或war文件时被打包进去,不适合存放动态生成的内容。一般来说,推荐使用专门的文件存储位置,如`static/upload`或`multipart/form-data`。
如果你还是想暂时这么处理,可以创建一个简单的Controller并配置MultipartFile接收器,例如:
```java
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class FileUploadController {
@PostMapping("/upload")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return new ResponseEntity<>("No file uploaded", HttpStatus.BAD_REQUEST);
}
String filename = file.getOriginalFilename();
try {
file.transferTo(new File("/resources/" + filename));
return new ResponseEntity<>("File uploaded successfully", HttpStatus.OK);
} catch (IOException e) {
return new ResponseEntity<>("Failed to upload file: " + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
```
在这个例子中,当用户通过POST请求提交文件时,会尝试将其保存到`/resources`路径下。记得在部署应用时检查文件系统权限,以及实际路径是否存在。
阅读全文