Bom dia pessoal,
Eu tenho uma duvida que é o seguinte,
quando eu adiciono um documento(pdf) do fileUpload em uma lista no ManageBean por que ele apaga a lista na segunda vez que eu adiciono outro documento?
eu acho que ja tentei de tudo, mas essa lista documentos não guarda o primeiro upload quando faço o segundo upload.
segue o meu código:
//ManageBean
import br.gov.caixa.siipp.internet.util.FileByte;
import br.gov.caixa.siipp.internet.to.DocumentoTO;
private FileByte fileByte;
private ArrayList<DocumentoTO> documentos = new ArrayList<DocumentoTO>();
private DocumentoTO documentoTO = new DocumentoTO();
/**
* @return the documentoTO
*/
public DocumentoTO getDocumentoTO() {
return documentoTO;
}
/**
* @param documentoTO the documentoTO to set
*/
public void setDocumentoTO(DocumentoTO documentoTO) {
this.documentoTO = documentoTO;
}
/**
* @return the documentos
*/
public ArrayList<DocumentoTO> getDocumentos() {
return documentos;
}
/**
* @param documentos the documentos to set
*/
public void setDocumentos(ArrayList<DocumentoTO> documentos) {
this.documentos = documentos;
}
public void uploadDocumentos(UploadEvent evento) throws IOException{
List<UploadItem> items = evento.getUploadItems();
for(UploadItem item : items){
fileByte = new FileByte();
fileByte.setDados(item.getData());
fileByte.setPath(item.getFileName());
fileByte.setSize(item.getData().length);
documentoTO.setImDocumentacao(fileByte.setBytesFromFile(fileByte.getDados()));
documentos.add(documentoTO);
}
}
//documentoTO.java
import java.io.File;
public class DocumentoTO extends AbstractTO {
private static final long serialVersionUID = 1L;
private Long nuDocumentacao;
private String deDocumentacao;
private String edDocumentacao;
private File imDocumentacao;
/**
* @return the nuDocumentacao
*/
public Long getNuDocumentacao() {
return nuDocumentacao;
}
/**
* @param nuDocumentacao
* the nuDocumentacao to set
*/
public void setNuDocumentacao(Long nuDocumentacao) {
this.nuDocumentacao = nuDocumentacao;
}
/**
* @return the deDocumentacao
*/
public String getDeDocumentacao() {
return deDocumentacao;
}
/**
* @param deDocumentacao
* the deDocumentacao to set
*/
public void setDeDocumentacao(String deDocumentacao) {
this.deDocumentacao = deDocumentacao;
}
/**
* @return the edDocumentacao
*/
public String getEdDocumentacao() {
return edDocumentacao;
}
/**
* @param edDocumentacao
* the edDocumentacao to set
*/
public void setEdDocumentacao(String edDocumentacao) {
this.edDocumentacao = edDocumentacao;
}
/**
* @return the imDocumentacao
*/
public File getImDocumentacao() {
return imDocumentacao;
}
/**
* @param imDocumentacao
* the imDocumentacao to set
*/
public void setImDocumentacao(File imDocumentacao) {
this.imDocumentacao = imDocumentacao;
}
}
//fileByte.java
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class FileByte {
private String path;
private long size;
private byte[] dados;
public FileByte() {
}
public byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
long length = file.length();
byte[] bytes = new byte[(int) length];
int offset = 0;
int numRead = 0;
while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
offset += numRead;
}
is.close();
return bytes;
}
public File setBytesFromFile(byte[] bytes) throws IOException {
File file = new File("new");
if (bytes != null) {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bos.write(bytes);
bos.close();
}
return file;
}
/**
* @return the path
*/
public String getPath() {
return path;
}
/**
* @param path the path to set
*/
public void setPath(String path) {
this.path = path;
}
/**
* @return the size
*/
public long getSize() {
return size;
}
/**
* @param size the size to set
*/
public void setSize(long size) {
this.size = size;
}
/**
* @return the dados
*/
public byte[] getDados() {
return dados;
}
/**
* @param dados the dados to set
*/
public void setDados(byte[] dados) {
this.dados = dados;
}
}
obrigado.