1
2
3
4
5 package comum.util;
6
7 import java.io.File;
8 import java.text.SimpleDateFormat;
9 import java.util.ArrayList;
10 import java.util.Date;
11 import java.util.Iterator;
12 import java.util.List;
13
14 import javax.servlet.http.HttpServletRequest;
15
16 import org.apache.commons.fileupload.FileItem;
17 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
18 import org.apache.commons.fileupload.servlet.ServletFileUpload;
19
20
21
22
23
24
25 public class FileUpload extends org.apache.commons.fileupload.FileUpload {
26
27
28
29
30
31
32
33
34
35
36
37
38 public static File salvarNoDisco(FileItem arquivo, String path) throws Exception{
39
40 File caminho = new File(path.substring(0, path.lastIndexOf("/")));
41 File file = new File(path);
42
43
44 if (!caminho.isDirectory())
45 caminho.mkdirs();
46
47
48
49
50 if (file.exists()){
51 String formato = "ddMMyyyyHHmmssSSS";
52 SimpleDateFormat formatter = new SimpleDateFormat(formato);
53
54 String novoCaminho = path.substring(0, path.lastIndexOf("/")) + "/" + formatter.format(new Date()) + " - " + file.getName();
55 File fileRenomeado = new File(novoCaminho);
56 file = fileRenomeado;
57 }
58
59 arquivo.write(file);
60 return file;
61 }
62
63
64
65
66
67
68
69
70
71
72
73 public static boolean apagarArquivo(String fileName) throws Exception{
74 File arquivo = new File(fileName);
75 if (arquivo.exists()){
76 return arquivo.delete();
77 }
78 else{
79 return true;
80 }
81 }
82
83
84
85
86
87
88
89
90
91
92
93 public static List criaListaCampos(HttpServletRequest request) throws Exception{
94 ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
95 List items = upload.parseRequest(request);
96 return items;
97 }
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 public static String verificaValorCampo(List items, String campo) throws Exception{
113 Iterator it = items.iterator();
114 while(it.hasNext()){
115 FileItem fileItem = (FileItem) it.next();
116 if(fileItem.isFormField()){
117 if(fileItem.getFieldName()!=null && fileItem.getFieldName().equals(campo)){
118 return Util.normalizaQuebraDeLinha(fileItem.getString());
119 }
120 }
121 }
122 return "";
123 }
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 public static Date verificaValorCampoDataBanco(List items, String campo) throws Exception{
140 String valor = verificaValorCampo(items, campo);
141 if ((valor != null) && (!"".equals(valor))) {
142 try {
143 return(new Date(valor.substring(6)+"/"+valor.substring(3,5)+"/"+valor.substring(0,2)));
144 } catch (Exception e) {
145 return(null);
146 }
147 } else {
148 return(null);
149 }
150
151 }
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168 public static String verificaValorCampoNull(List items, String campo) throws Exception{
169 Iterator it = items.iterator();
170 while(it.hasNext()){
171 FileItem fileItem = (FileItem) it.next();
172 if(fileItem.isFormField()){
173 if(fileItem.getFieldName()!=null && fileItem.getFieldName().equals(campo)){
174 if("".equals(fileItem.getString()))
175 return null;
176 else
177 fileItem.getString();
178 }
179 }
180 }
181 return null;
182 }
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200 public static Object[] verificaValorCampoArray(List items, String campo) throws Exception{
201 List retorno = new ArrayList();
202 Iterator it = items.iterator();
203 while(it.hasNext()){
204 FileItem fileItem = (FileItem) it.next();
205 if(fileItem.isFormField()){
206 if(fileItem.getFieldName()!=null && fileItem.getFieldName().equals(campo)){
207 retorno.add(fileItem.getString());
208 }
209 }
210 }
211 return retorno.toArray();
212 }
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228 public static String getNomeArquivo(FileItem arquivo) {
229 String nomeArquivo = arquivo.getName();
230
231
232
233
234
235 if(nomeArquivo.lastIndexOf("\\") != -1) {
236 nomeArquivo = nomeArquivo.substring(nomeArquivo.lastIndexOf("\\") + 1);
237 } else if (nomeArquivo.lastIndexOf("/") != -1)
238 nomeArquivo = nomeArquivo.substring(nomeArquivo.lastIndexOf("/") + 1);
239
240 return nomeArquivo;
241 }
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257 public static String getPathLogico(String pathFisico, String contextName) {
258 if(pathFisico.indexOf(contextName)!= -1)
259 return pathFisico.substring(pathFisico.indexOf(contextName), pathFisico.length());
260 else
261 return "";
262 }
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279 public static String getPathFisico(String realPath, String caminho, String nomeArquivo){
280
281 StringBuffer retorno = new StringBuffer();
282 realPath = realPath.replaceAll("\\\\", "/");
283
284
285 if (!"".equals(nomeArquivo))
286 nomeArquivo = "/" + nomeArquivo;
287
288 retorno.append(realPath);
289 retorno.append(caminho);
290 retorno.append(nomeArquivo);
291
292 return retorno.toString();
293 }
294 }