私はファイルを抽出したいと思うzipファイルを持っていますが、私はこのファイルをSpringコントローラ経由で送信することになっています。ZipEntry getEntry()は常にnullを返します
//This code is in a Spring Controller to send the screenshot.
ZipFile file = new ZipFile("path/to/zipFile.zip");
try(InputStream is = searchImage(screenshotFileName, file)){
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/png");
ServletOutputStream servletOutputStream = response.getOutputStream();
IOUtils.copy(is,servletOutputStream);
}catch (IOException e){
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
private InputStream searchImage(String screenshotFileName, ZipFile file) throws IOException{
ZipEntry entry = file.getEntry(screenshotFileName);
if(entry != null){
return file.getInputStream(entry);
}
return null;
}
私はに実行しています問題は、このコードが実行されるたびに、InputStream
はgetEntry
方法は、スクリーンショットを見つけていないことをnullとして意味を返されていることです。私はzipファイルを見て、スクリーンショットファイルがzipファイルに存在することを知っています。私はこれについて間違っていますか?私が探しているzipファイルには多くのサブディレクトリがありますが、スクリーンショットを見つけるためにそれらを検索する必要はありますか?
名前だけでなく、完全なパスを指定する必要があります。パスは、ファイル内のものと正確に一致する必要があります。 – EJP