@RequestMapping(value = "temp_img.do", method = RequestMethod.GET)
public void annexImg(@RequestParam(name = "filename") String filename, HttpServletResponse response) throws IOException {
String[] arrdata = filename.split("-");
String path = "DocBorrow";
if (arrdata.length == 3) {
path = arrdata[2];
} else if (arrdata.length < 2) {
exiepOutput(response);
return;
}
BufferedImage bufferedImage = ftpViewImgService.getTempimg(arrdata[0], path, arrdata[1]);
if (bufferedImage == null) {
exiepOutput(response);
return;
}
try {
ServletOutputStream fout = response.getOutputStream();
response.setHeader("Content-Type", "image/png");
ImageIO.write(bufferedImage, "png", fout);
fout.close();
} catch (IOException e) {
exiepOutput(response);
} finally {
}
}
private void exiepOutput(HttpServletResponse response) {
byte[] bytes = null;
response.setContentType("text/plain; charset=utf-8");
String info = "未获取到当前访问的资源信息!";
OutputStream os = null;
try {
bytes = info.getBytes("UTF-8");
os = response.getOutputStream();
os.write(bytes);
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Override
public BufferedImage getTempimg(String ftpserverid, String filepath,String filename) throws IOException {
FtpServer ftpServer=ftpserverMapper.getById(ftpserverid);
FtpUtils ftpUtils = new FtpUtils(ftpServer.getHost(), ftpServer.getPort(), ftpServer.getUsername(), ftpServer.getPassword());
ByteArrayOutputStream baos=ftpUtils.getByteArrayOutputStream(filepath,filename);
if(baos==null){
return null;
}
byte[] data = baos.toByteArray();
ByteArrayInputStream in = new ByteArrayInputStream(data);
BufferedImage image = ImageIO.read(in);
return image;
}