1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.ctv.web;
35
36 import java.awt.image.BufferedImage;
37 import java.io.ByteArrayInputStream;
38 import java.io.IOException;
39 import java.io.OutputStream;
40 import java.util.Base64;
41
42 import javax.imageio.ImageIO;
43 import javax.servlet.ServletException;
44 import javax.servlet.http.HttpServlet;
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpServletResponse;
47
48 import fr.paris.lutece.plugins.ctv.bo.Emprise;
49 import fr.paris.lutece.plugins.ctv.business.IEmpriseService;
50 import fr.paris.lutece.plugins.ctv.business.IStockageImageService;
51 import fr.paris.lutece.portal.service.spring.SpringContextService;
52 import fr.paris.lutece.portal.service.util.AppPropertiesService;
53
54 public class EmpriseImageServlet extends HttpServlet
55 {
56
57 private static final long serialVersionUID = 1L;
58
59 @Override
60 public void doGet( HttpServletRequest request, HttpServletResponse resp ) throws ServletException, IOException
61 {
62
63 IStockageImageService stockageService = SpringContextService.getBean( "stockageImageService" );
64 IEmpriseService empriseService = SpringContextService.getBean( "empriseService" );
65
66 String pathFolder = AppPropertiesService.getProperty( "ctv.directory.upload" );
67
68 int empriseId = Integer.parseInt( request.getParameter( "emprise_id" ) );
69
70 Emprise emprise = empriseService.findEmpriseById( empriseId );
71 String imageBase64 = stockageService.getImageFromServer( pathFolder, emprise.getEmpriseDateCreation( ), empriseId );
72 OutputStream out = resp.getOutputStream( );
73 writeOutputStream( imageBase64, out );
74
75 resp.setContentType( "image/jpg" );
76 resp.setHeader( "Pragma", "" );
77 resp.setHeader( "Cache-Control", "" );
78 resp.setHeader( "Content-Disposition", "inline; fileName=emprise.jpg" );
79 }
80
81 private void writeOutputStream( String value, OutputStream outputStream ) throws IOException
82 {
83 byte [ ] imgBytes = Base64.getDecoder( ).decode( value.replace( "data:image/jpeg;base64,", "" ) );
84 BufferedImage bufImg = null;
85 if ( imgBytes.length > 0 )
86 {
87 bufImg = ImageIO.read( new ByteArrayInputStream( imgBytes ) );
88
89 }
90 else
91 {
92 bufImg = new BufferedImage( 1, 1, BufferedImage.TYPE_INT_RGB );
93 }
94 ImageIO.write( bufImg, "jpg", outputStream );
95
96 }
97
98 }