【发布时间】:2020-08-11 10:48:43
【问题描述】:
我制作了一个控制器,它将图像(*.png)文件返回给适当的请求。
控制器的代码如下。
@Controller
public class ImageController {
@GetMapping(value = "/ImageStore.do", produces = MediaType.IMAGE_PNG_VALUE)
public @ResponseBody byte[] getStoreImage(HttpServletRequest request) throws IOException {
String image_name = request.getParameter("image_name");
Resource resource = null;
try {
resource = new ClassPathResource("/images/stores/" + image_name);
if(resource == null) {
throw new NullPointerException();
}
} catch(NullPointerException e) {
resource = new ClassPathResource("/images/stores/noimage.png");
}
InputStream inputStream = resource.getInputStream();
return IOUtils.toByteArray(inputStream);
}
}
第一季度。如果请求参数错误,或者请求参数image_name 的文件名不存在,我添加了try-catch 短语以发送noimage.png。但它似乎不起作用,它给了我日志说
class path resource [images/stores/noima.png] cannot be opened because it does not exist
(如果您需要了解完整的堆栈跟踪,我将在下面发表评论。)
第二季度。我有 2 个图像文件,hello.png 和 noimage.png 在文件夹 /resources/images/stores/ 中。我可以正确读取noimage.png,但如果我提出请求localhost:8080/ImageStore.do?image_name=hello.png,则会出错,在第一季度进行相同的日志。
【问题讨论】:
标签: java spring spring-mvc model-view-controller