/*
* Created on 15/07/2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package br.com.centralit.citcorpore.util;
import java.io.File;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* @author CentralIT
*/
public class Upload {
@SuppressWarnings("deprecation")
public void doUpload(HttpServletRequest request, Collection colFilesUpload) throws Exception {
// DiskFileUpload fu = new DiskFileUpload();
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fu = new ServletFileUpload(factory);
fu.setSizeMax(-1);
fu.setFileSizeMax(-1);
// fu.setSizeThreshold(4096);
// fu.setRepositoryPath("");
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
FileItem fi;
UploadItem upIt;
File arquivo;
Iterator itAux = colFilesUpload.iterator();
while(itAux.hasNext()){
upIt = (UploadItem)itAux.next();
while(i.hasNext()){
fi = (FileItem)i.next();
if (upIt.getNomeArquivo().toUpperCase().trim().equals(fi.getName().toUpperCase().trim())){
arquivo = new File(upIt.getPathArquivo() + "\\" + upIt.getNomeArquivo());
fi.write(arquivo);
}
}
}
}
/**
* Modificando a forma de anexar, foi mudado para um m�todo n�o depreciado.
* @param request
* @return
* @throws Exception
* @author mario.haysaki
*/
public HashMap[] doUploadAll(HttpServletRequest request) throws Exception {
HashMap[] hshRetorno = new HashMap[2];
DiskFileItemFactory fact = new DiskFileItemFactory();
String DISKFILEUPLOAD_REPOSITORYPATH = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH,"");
if(DISKFILEUPLOAD_REPOSITORYPATH == null){
DISKFILEUPLOAD_REPOSITORYPATH = "";
}
File repositoryPath = new File(DISKFILEUPLOAD_REPOSITORYPATH);
fact.setRepository(repositoryPath);
ServletFileUpload fu = new ServletFileUpload(fact);
try {
/**
* @author pedro.lino, Danilo.Lisboa
* Necess�rio especificar o encoding, pois quando existe dois ou mais uploads na mesma tela estava vindo com caracteres especiais;
* N�O RETIRAR O TRATAMENTO DE ENCODING.
* **/
fu.setHeaderEncoding("iso-8859-1");
fu.setSizeMax(-1);
hshRetorno[0] = new HashMap(); //Retorna os campos de formul�rio
hshRetorno[1] = new HashMap(); //Retorna os nomes de arquivos
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
FileItem fi;
while(i.hasNext()){
fi = (FileItem)i.next();
if (!fi.isFormField()){
hshRetorno[1].put(CITCorporeUtil.getNameFile(fi.getName()), fi);
hshRetorno[0].put(fi.getFieldName().toUpperCase(), CITCorporeUtil.getNameFile(fi.getName()));
request.setAttribute(fi.getFieldName(), CITCorporeUtil.getNameFile(fi.getName()));
} else {
//System.err.println(fi.getFieldName().toUpperCase() + ": " + fi.getString());
hshRetorno[0].put(fi.getFieldName().toUpperCase(), fi.getString());
request.setAttribute(fi.getFieldName(), fi.getString());
}
}
} catch (Exception e) {
// TODO: handle exception
}
return hshRetorno;
}
/* public HashMap[] doUploadAll(HttpServletRequest request) throws Exception {
HashMap[] hshRetorno = new HashMap[2];
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fu = new ServletFileUpload(factory);
fu.setSizeMax(-1);
String DIRETORIO_TEMP_UPLOAD_ARQUIVOS = "";
String str = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH,"");
if (str == null){
str = "/tmp";
}
if (str == null || str.equalsIgnoreCase("")){
str = DIRETORIO_TEMP_UPLOAD_ARQUIVOS;
}
//fu.setRepositoryPath(str);
hshRetorno[0] = new HashMap(); //Retorna os campos de formul�rio
hshRetorno[1] = new HashMap(); //Retorna os nomes de arquivos
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
FileItem fi;
while(i.hasNext()){
fi = (FileItem)i.next();
if (!fi.isFormField()){
hshRetorno[1].put(CITCorporeUtil.getNameFile(fi.getName()), fi);
hshRetorno[0].put(fi.getFieldName().toUpperCase(), CITCorporeUtil.getNameFile(fi.getName()));
request.setAttribute(fi.getFieldName(), CITCorporeUtil.getNameFile(fi.getName()));
} else {
hshRetorno[0].put(fi.getFieldName().toUpperCase(), fi.getString());
request.setAttribute(fi.getFieldName(), fi.getString());
}
}
return hshRetorno;
}*/
}