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.genericattributes.service.entrytype;
35
36 import java.util.List;
37 import java.util.Locale;
38
39 import javax.servlet.http.HttpServletRequest;
40 import javax.xml.bind.DatatypeConverter;
41
42 import fr.paris.lutece.plugins.genericattributes.business.Entry;
43 import fr.paris.lutece.plugins.genericattributes.business.GenericAttributeError;
44 import fr.paris.lutece.plugins.genericattributes.business.MandatoryError;
45 import fr.paris.lutece.plugins.genericattributes.business.Response;
46 import fr.paris.lutece.portal.business.file.File;
47 import fr.paris.lutece.portal.business.physicalfile.PhysicalFile;
48 import fr.paris.lutece.portal.web.upload.MultipartHttpServletRequest;
49 import fr.paris.lutece.util.filesystem.FileSystemUtil;
50
51 public abstract class AbstractEntryTypeImage extends AbstractEntryTypeUpload
52 {
53 @Override
54 public GenericAttributeError getResponseData( Entry entry, HttpServletRequest request, List<Response> listResponse, Locale locale )
55 {
56 if ( request instanceof MultipartHttpServletRequest )
57 {
58 GenericAttributeError genAttError = null;
59
60 if ( !entry.isMandatory( ) )
61 {
62 String sourceBase = request.getParameter( ( PREFIX_ATTRIBUTE + entry.getIdEntry( ) ) );
63
64 Response response = getResponseFromImage( sourceBase, entry, false );
65 response.setIterationNumber( getResponseIterationValue( request ) );
66
67 listResponse.add( response );
68 return genAttError;
69 }
70
71 if ( entry.isMandatory( ) )
72 {
73 genAttError = new MandatoryError( entry, locale );
74
75 Response/genericattributes/business/Response.html#Response">Response response = new Response( );
76 response.setEntry( entry );
77 listResponse.add( response );
78 }
79
80 return genAttError;
81 }
82
83 return entry.isMandatory( ) ? new MandatoryError( entry, locale ) : null;
84 }
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 protected Response getResponseFromImage( String imageSource, Entry entry, boolean bCreatePhysicalFile )
101 {
102 Response/genericattributes/business/Response.html#Response">Response response = new Response( );
103 response.setEntry( entry );
104
105 File file = new File( );
106 DatatypeConverter.parseBase64Binary( imageSource );
107
108 file.setTitle( "crop_" + entry.getTitle( ) );
109
110 if ( bCreatePhysicalFile )
111 {
112 file.setMimeType( FileSystemUtil.getMIMEType( file.getTitle( ) ) );
113
114 PhysicalFile physicalFile = new PhysicalFile( );
115 physicalFile.setValue( DatatypeConverter.parseBase64Binary( imageSource ) );
116 file.setPhysicalFile( physicalFile );
117 }
118
119 response.setFile( file );
120
121 return response;
122 }
123 }