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.portal.service.fileimage;
35
36 import javax.servlet.http.HttpServletRequest;
37
38 import org.apache.commons.fileupload.FileItem;
39
40 import fr.paris.lutece.portal.business.file.File;
41 import fr.paris.lutece.portal.business.file.FileHome;
42 import fr.paris.lutece.portal.business.physicalfile.PhysicalFile;
43 import fr.paris.lutece.portal.business.physicalfile.PhysicalFileHome;
44 import fr.paris.lutece.portal.business.user.AdminUser;
45 import fr.paris.lutece.portal.business.user.attribute.AdminUserFieldHome;
46 import fr.paris.lutece.portal.service.admin.AdminUserService;
47 import fr.paris.lutece.portal.service.file.FileService;
48 import fr.paris.lutece.portal.service.image.ImageResource;
49 import fr.paris.lutece.portal.service.image.ImageResourceManager;
50 import fr.paris.lutece.portal.service.image.ImageResourceProvider;
51 import fr.paris.lutece.portal.service.init.LuteceInitException;
52 import fr.paris.lutece.portal.web.LocalVariables;
53 import fr.paris.lutece.util.file.FileUtil;
54
55
56
57
58 public class FileImageService implements ImageResourceProvider
59 {
60 private static FileImageServicemage/FileImageService.html#FileImageService">FileImageService _singleton = new FileImageService( );
61 private static final String IMAGE_RESOURCE_TYPE_ID = "core_attribute_img";
62
63
64
65
66 private FileImageService( )
67 {
68 }
69
70
71
72
73
74
75
76 public static synchronized void init( )
77 {
78 getInstance( ).register( );
79 }
80
81
82
83
84 public void register( )
85 {
86 ImageResourceManager.registerProvider( this );
87 }
88
89
90
91
92
93
94 public static FileImageService getInstance( )
95 {
96 return _singleton;
97 }
98
99
100
101
102
103
104
105
106 public ImageResource getImageResource( int nIdResource )
107 {
108
109 if ( !isAuthorized( nIdResource ) ) return null;
110
111 File file = FileHome.findByPrimaryKey( nIdResource );
112
113 if ( ( file != null ) && ( file.getPhysicalFile( ) != null ) && FileUtil.hasImageExtension( file.getTitle( ) ) )
114 {
115 PhysicalFile physicalFile = PhysicalFileHome.findByPrimaryKey( file.getPhysicalFile( ).getIdPhysicalFile( ) );
116 ImageResource/ImageResource.html#ImageResource">ImageResource imageResource = new ImageResource( );
117 imageResource.setImage( physicalFile.getValue( ) );
118 imageResource.setMimeType( file.getMimeType( ) );
119
120 return imageResource;
121 }
122
123
124 return null;
125 }
126
127
128
129
130
131
132 public String getResourceTypeId( )
133 {
134 return IMAGE_RESOURCE_TYPE_ID;
135 }
136
137
138
139
140
141
142
143 private static boolean isAuthorized( int nIdResource )
144 {
145 HttpServletRequest request = LocalVariables.getRequest( );
146 AdminUser user = AdminUserService.getAdminUser( request );
147
148 return ( user == null || !AdminUserFieldHome.existsWithFile( nIdResource ) );
149 }
150
151
152
153
154
155
156 public String addImageResource( FileItem fileItem )
157 {
158 return FileService.getInstance( ).getFileStoreServiceProvider( ).storeFileItem( fileItem );
159 }
160 }