我在客户端使用Spring Boot和AngularJS开发Rest API,我使用下面的RestController将文件上传到/ resources/static/upload,并在客户端使用它们侧Spring:引用资源/静态文件夹
@RestController
@CrossOrigin("*")
public class FilmController {
@Autowired
private FilmRepository filmRepository;
@RequestMapping(value = "/films", method = RequestMethod.POST)
public void saveFilm(@RequestParam("file") MultipartFile file) throws Exception {
File convFile = new File("src/main/resources/static/upload/"+file.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fos = new FileOutputStream(convFile);
Blob blob = new SerialBlob(file.getBytes());
fos.write(file.getBytes());
fos.close();
System.out.println(convFile.getName());
filmRepository.save(new Film(convFile.getName(), blob));
}
@RequestMapping(value = "/films", method = RequestMethod.GET)
public List<Film> getAllFilms() {
return filmRepository.findAll();
}
}
这里是我访问上传的图片“image.jpg的”
<img src="http://localhost:8080/upload/image.jpg" />
但是,当我跑MVN包,启动我的应用程序JAR文件,我无法访问上传图片在客户端,我没有找到404。
有人可以解释一下Spring存储和引用静态资源的方式,以及如何解决这个问题。
你不能......你不能上传到类路径中的路径,它将有效地在jar中。 –
那么我可以在哪里上传我的文件,并仍然可以在客户端访问它们? – jemlifathi
在文件系统或合适的数据存储上使用路径。 –