我在客戶端使用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
在文件系統或合適的數據存儲上使用路徑。 –