Visando tentar gravar numa tabela Blob gostaria de converter imagem em bytes e depois desconverter pra exibir pro usuário... Aliás essa
é a únicamente maneira em termos de Blob, né? Antes de dar NullPointerException ele gravava só que só os bytes tanto que pro usuário aparecia apenas um
monte de número (array de bytes)... Pra retornar no JSP page faço o esquema normal como se fosse String né?
/**
* Método Action
* @return SUCESS
* @return INPUT
* @throws IOException
* @throws FileNotFoundException
* */
@SuppressWarnings("null")
@Override
public String execute() throws IOException, FileNotFoundException, FileUploadException, SizeLimitExceededException
{
if (imagemDoUsuario == null)
{
System.out.println("É preciso apontar o arquivo a ser importado!");
return INPUT;
}
if (!imagemDoUsuarioContentType.startsWith("image"))
{
System.out.println("O formato do arquivo é inválido! Não é uma imagem!");
return INPUT;
}
if(imagemDoUsuario.length() >= 2097152)
{
throw new SizeLimitExceededException("A imagem anexada ultrapassa o tamanho máximo permitido!");
}
FileInputStream in = new FileInputStream(imagemDoUsuario);
byte[] buffer = new byte[(int)imagemDoUsuario.length()];
System.out.println("Tamanho da Imagem: " + imagemDoUsuario.length() + " Bytes");
OutputStream outputStream = null;
InputStream inputStream = null;
int readBytes = 0;
/*-> NullPointerException aqui...*/ while ((readBytes = inputStream.read(buffer, 0 , (int) imagemDoUsuario.length()))!= -1) //-> NullPointerException aqui...
{
outputStream.write(buffer, 0, readBytes);
}
in.read(buffer);
pessoaImagem.setImagem(buffer);
pessoaImagemDAO.salvarPessoaImagem(pessoaImagem);
inputStream.close();
outputStream.close();
return populaTodasImagens();
}
