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.directory.web;
35
36 import fr.paris.lutece.plugins.directory.service.upload.DirectoryAsynchronousUploadHandler;
37 import fr.paris.lutece.plugins.directory.utils.JSONUtils;
38 import fr.paris.lutece.portal.service.i18n.I18nService;
39
40 import net.sf.json.JSON;
41 import net.sf.json.JSONArray;
42 import net.sf.json.JSONSerializer;
43
44 import org.apache.commons.lang.ArrayUtils;
45 import org.apache.commons.lang.StringUtils;
46
47 import java.util.Arrays;
48
49 import javax.servlet.http.HttpServletRequest;
50
51
52
53
54
55
56 public class DoRemoveAsynchronousFile
57 {
58 private static final String PARAMETER_ID_ENTRY = "id_entry";
59 private static final String PARAMETER_FIELD_INDEX = "field_index";
60 private static final String PROPERTY_MESSAGE_ERROR_REMOVING_FILE = "directory.message.error.removingFile";
61
62
63
64
65
66
67
68
69
70
71
72 public String doRemoveAsynchronousUploadedFile( HttpServletRequest request )
73 {
74 String strSessionId = request.getSession( ).getId( );
75 String strIdEntry = request.getParameter( PARAMETER_ID_ENTRY );
76 String strFieldIndex = request.getParameter( PARAMETER_FIELD_INDEX );
77 String strErrorMessage = I18nService.getLocalizedString( PROPERTY_MESSAGE_ERROR_REMOVING_FILE, request.getLocale( ) );
78
79 if ( StringUtils.isBlank( strIdEntry ) || StringUtils.isBlank( strFieldIndex ) )
80 {
81 return JSONUtils.buildJsonError( strErrorMessage ).toString( );
82 }
83
84
85 JSON jsonFieldIndexes = JSONSerializer.toJSON( strFieldIndex );
86
87 if ( !jsonFieldIndexes.isArray( ) )
88 {
89 return JSONUtils.buildJsonError( strErrorMessage ).toString( );
90 }
91
92 JSONArray jsonArrayFieldIndexers = (JSONArray) jsonFieldIndexes;
93 int [ ] tabFieldIndex = new int [ jsonArrayFieldIndexers.size( )];
94
95 for ( int nIndex = 0; nIndex < jsonArrayFieldIndexers.size( ); nIndex++ )
96 {
97 try
98 {
99 tabFieldIndex [nIndex] = Integer.parseInt( jsonArrayFieldIndexers.getString( nIndex ) );
100 }
101 catch( NumberFormatException nfe )
102 {
103 return JSONUtils.buildJsonError( strErrorMessage ).toString( );
104 }
105 }
106
107
108 Arrays.sort( tabFieldIndex );
109 ArrayUtils.reverse( tabFieldIndex );
110
111 for ( int nFieldIndex : tabFieldIndex )
112 {
113 DirectoryAsynchronousUploadHandler.getHandler( ).removeFileItem( strIdEntry, strSessionId, nFieldIndex );
114 }
115
116 return JSONUtils.buildJsonSuccess( strIdEntry, strSessionId ).toString( );
117 }
118 }