Pessoal como diz o assunto eu gostaria de converter um array de byte em um file.
Tentei da seguinte forma mas não tive sucesso:
byte[] b = new byte[out.size()];
out.write(b);
out.flush();
out.close();
File f = new File(new String(b));
Descobri que isso só serve para textos, porém meu arquivo são imagens com textos, fotos e etc em pdf.
Segue meu código completo:
[code] public Boolean insereImagemNoBanco(ArrayList anexoGuia, HttpServletRequest request, HttpServletResponse response) throws CMSException, IOException {
final String CONTENT_TYPE = "text/html; charset=windows-1252";
String mimeType = CONTENT_TYPE;
BLOB blob = null;
ConvertePDFToImage convertePDFToImage = new ConvertePDFToImage();
for (Iterator iterator = anexoGuia.iterator(); iterator.hasNext();) {
Anexo anexo = (Anexo) iterator.next();
File file = new File(anexo.getPathArquivo());
FileInputStream fis = new FileInputStream(file);
CMSSignedData dados;
dados = new CMSSignedData(fis);
fis.close();
ByteArrayOutputStream out = new ByteArrayOutputStream();
CMSProcessable conteudo = dados.getSignedContent();
conteudo.write(out);
try {
Magic parser = new Magic();
parser.initialize();
MagicMatch match = parser.getMagicMatch(out.toByteArray());
mimeType = match.getMimeType();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Erro ao detectar o tipo de conteúdo do arquivo ");
}
//LUGAR ONDE TENTO CONVERTER UM ARRAY DE BYTE PARA UM FILE
byte[] b = new byte[out.size()];
out.write(b);
out.flush();
out.close();
File f = new File(new String(b));
//InputStream is = new FileInputStream();
convertePDFToImage.convert(anexo, 0);
}
return true;
}[/code]
Grato!