Blz galera?
Estou com um problema ao salvar uma imagem redimensionada/recortada em um servidor linux.
Minha máquina de desenvolvimento é Windows 7, nela funciona tudo certo, porém quando faço o deploy da aplicação no servidor não consigo salvar a imagem.
Utilizo o código (Frankenstein) abaixo, obtido depois de juntar várias sugestões de diversos blogs e tutoriais:
public void redimensionarImagem(String path, String ext){
BufferedImage imagem;
Image imagemRed;
Integer width = 0;
Integer height = 0;
String orientacao = "";
try {
//Lê a imagem no diretório temporário
imagem = ImageIO.read(new File(path));
//Obtém as medidas da imagem
height = imagem.getHeight();
width = imagem.getWidth();
//Verifica a orientação da imagem e a redimensiona
if (width > height) {
orientacao = "P";
imagemRed = imagem.getScaledInstance(256, 192, 100);
} else {
orientacao = "R";
imagemRed = imagem.getScaledInstance(192, 256, 100);
}
//Seta a variável com a orientação da figura a ser utilizada na página
this.setOrientacaoFoto(orientacao);
//Gera um novo inputstream da imagem redimensionada (convertendo a imagem em byte)
InputStream in = new ByteArrayInputStream(this.imageToByte(imagemRed, ext));
//Gera uma nova bufferedimage através da imagem convertida em byte
imagem = ImageIO.read(in);
//Grava a imagem redimensionada
ImageIO.write(imagem, ext, new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
Lembrando que para o windows eu utilizo um caminho de diretório e pra linux utilizo outro.
As pastas no linux estão com permissão de escrita, tenho uma função que faz o upload da foto para o diretório temporário e que funciona.
Não sei se tenho que configurar mais alguma coisa no linux.
Valeu.