56
56
import fr .paris .lutece .portal .business .file .FileHome ;
57
57
import fr .paris .lutece .portal .business .physicalfile .PhysicalFile ;
58
58
import fr .paris .lutece .portal .business .physicalfile .PhysicalFileHome ;
59
+ import fr .paris .lutece .portal .service .file .FileService ;
60
+ import fr .paris .lutece .portal .service .file .FileServiceException ;
61
+ import fr .paris .lutece .portal .service .file .IFileStoreServiceProvider ;
59
62
import fr .paris .lutece .portal .service .template .AppTemplateService ;
63
+ import fr .paris .lutece .portal .service .util .AppLogService ;
60
64
61
65
/**
62
66
* The display service for entry type file
@@ -139,30 +143,43 @@ private String getTemplateEdition( HttpServletRequest request, Entry entry, Disp
139
143
IEntryTypeService service = EntryTypeServiceManager .getEntryTypeService ( entry );
140
144
List <Response > listResponse = retrieveResponseListFromModel ( model );
141
145
List <FileItem > listFiles = new ArrayList <>( );
146
+
147
+
142
148
for ( Response response : listResponse )
143
149
{
144
150
if ( response .getFile ( ) != null )
145
151
{
146
- if ( StringUtils .isNotEmpty ( response .getFile ( ).getFileKey ( ) ) )
147
- {
148
- File file = FileHome .findByPrimaryKey ( response .getFile ( ).getIdFile ( ) );
149
- PhysicalFile physicalFile = PhysicalFileHome .findByPrimaryKey ( file .getPhysicalFile ( ).getIdPhysicalFile ( ) );
150
- FileItem fileItem = new GenAttFileItem ( physicalFile .getValue ( ), file .getTitle ( ) );
151
- ( (AbstractEntryTypeUpload ) service ).getAsynchronousUploadHandler ( ).addFileItemToUploadedFilesList ( fileItem , "nIt"
152
- + response .getIterationNumber ( ) + "_" + IEntryTypeService .PREFIX_ATTRIBUTE + Integer .toString ( response .getEntry ( ).getIdEntry ( ) ),
153
- request );
154
- listFiles .add ( fileItem );
152
+ try {
153
+ if ( StringUtils .isNotEmpty ( response .getFile ( ).getFileKey ( ) ) )
154
+ {
155
+ IFileStoreServiceProvider fss = FileService .getInstance ( ).getFileStoreServiceProvider ( response .getFile ( ).getOrigin ( ) );
156
+ File file = fss .getFile ( response .getFile ( ).getFileKey ( ) );
157
+
158
+ file .setUrl (displayType .isFront ( ) ? fss .getFileDownloadUrlFO ( file .getFileKey ()) : fss .getFileDownloadUrlBO (file .getFileKey ()));
159
+
160
+ PhysicalFile physicalFile = file .getPhysicalFile ();
161
+ FileItem fileItem = new GenAttFileItem ( physicalFile .getValue ( ), file .getTitle ( ) );
162
+ ( (AbstractEntryTypeUpload ) service ).getAsynchronousUploadHandler ( ).addFileItemToUploadedFilesList ( fileItem , "nIt"
163
+ + response .getIterationNumber ( ) + "_" + IEntryTypeService .PREFIX_ATTRIBUTE + Integer .toString ( response .getEntry ( ).getIdEntry ( ) ),
164
+ request );
165
+ listFiles .add ( fileItem );
166
+ }
167
+ else if ( response .getFile ( ).getPhysicalFile ( ) != null )
168
+ {
169
+ FileItem fileItem = new GenAttFileItem ( response .getFile ( ).getPhysicalFile ( ).getValue ( ), response .getFile ( ).getTitle ( ) );
170
+ ( (AbstractEntryTypeUpload ) service ).getAsynchronousUploadHandler ( ).addFileItemToUploadedFilesList ( fileItem , "nIt"
171
+ + response .getIterationNumber ( ) + "_" + IEntryTypeService .PREFIX_ATTRIBUTE + Integer .toString ( response .getEntry ( ).getIdEntry ( ) ),
172
+ request );
173
+ listFiles .add ( fileItem );
174
+ }
155
175
}
156
- else if ( response . getFile ( ). getPhysicalFile ( ) != null )
176
+ catch ( FileServiceException e )
157
177
{
158
- FileItem fileItem = new GenAttFileItem ( response .getFile ( ).getPhysicalFile ( ).getValue ( ), response .getFile ( ).getTitle ( ) );
159
- ( (AbstractEntryTypeUpload ) service ).getAsynchronousUploadHandler ( ).addFileItemToUploadedFilesList ( fileItem , "nIt"
160
- + response .getIterationNumber ( ) + "_" + IEntryTypeService .PREFIX_ATTRIBUTE + Integer .toString ( response .getEntry ( ).getIdEntry ( ) ),
161
- request );
162
- listFiles .add ( fileItem );
178
+ AppLogService .error ("Error getting file from file store service provider" , e );
163
179
}
164
180
}
165
181
}
182
+
166
183
model .put ( "listFiles" , listFiles );
167
184
return AppTemplateService .getTemplate ( service .getTemplateHtmlForm ( entry , displayType .isFront ( ) ), locale , setModel ( entry , service , model ) )
168
185
.getHtml ( );
@@ -180,6 +197,7 @@ else if ( response.getFile( ).getPhysicalFile( ) != null )
180
197
* @param model
181
198
* The model to populate
182
199
* @return the template of the given Entry with its Response value
200
+ * @throws FileServiceException
183
201
*/
184
202
private String getEntryResponseValueTemplateDisplay ( Entry entry , DisplayType displayType , Locale locale , Map <String , Object > model )
185
203
{
@@ -193,7 +211,17 @@ private String getEntryResponseValueTemplateDisplay( Entry entry, DisplayType di
193
211
File file = response .getFile ( );
194
212
if ( file != null && file .getPhysicalFile ( ) == null )
195
213
{
196
- response .setFile ( FileHome .findByPrimaryKey ( file .getIdFile ( ) ) );
214
+ try {
215
+ IFileStoreServiceProvider fss = FileService .getInstance ( ).getFileStoreServiceProvider ( response .getFile ().getOrigin () );
216
+ file = fss .getFile (file .getFileKey () );
217
+
218
+ file .setUrl (displayType .isFront ( ) ? fss .getFileDownloadUrlFO ( file .getFileKey ()) : fss .getFileDownloadUrlBO (file .getFileKey ()));
219
+
220
+ response .setFile ( file );
221
+ }
222
+ catch (FileServiceException e ) {
223
+ AppLogService .error ("Error getting file from file store service provider" , e );
224
+ }
197
225
}
198
226
}
199
227
}
@@ -207,4 +235,4 @@ public IFormColumn getFormColumn( int nFormColumnPosition, String strColumnTitle
207
235
{
208
236
return null ;
209
237
}
210
- }
238
+ }
0 commit comments