有一种方法可以在配置文件中定义变量,然后通过此类变量简单地使用它,而不是在 JAVA Spring Controller 的不同部分中使用路径变量(即用于访问图像):
Config file:
String imageFolder = "D:\\Projects\\project_name\\images\\";
Spring Controller:
File outputFile = new File(imageFolder + img_name + "." + img_ext);
ImageIO.write(image, img_ext, outputFile);
提前致谢。
最佳答案
自己的解决方案(添加在底部):
web.xml:
<context-param>
<param-name>imageFolder</param-name>
<param-value>D:\Projects\project_name\src\main\webapp\resource\images\</param-value>
</context-param>
Controller :
@RestController
public class nameController {
@Resource
private ServletContext servletContext;
@RequestMapping(value = "/getImage/{img_name:.+}")
public byte[] getImage(@PathVariable String img_name) throws InternalError {
byte[] data;
try {
String imageFolder = servletContext.getInitParameter("imageFolder");
String realpath = imageFolder + img_name;
Path path = Paths.get(realpath);
data = Files.readAllBytes(path);
}catch (Exception e){
data = null;
}
return data;
}
}
关于java - 在 Spring 配置文件中定义变量以访问包含图像的外部文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306790/