Para Desenvolvedores

Erro ao ler arquivo temporário

Resolvido

Precisava baixar as imagens de uma URL e inserir no Repositório de Mídias do Lumis Portal.

A solução encontrada foi a de salvar o arquivo de imagem, de forma temporária e adicionar o arquivo ao Lumis Portal. Esse é o código:

transaction.begin();

            File file = File.createTempFile("tmp", ".jpg");

            URL urlImagem = new URL(urlFile);
            BufferedImage image = ImageIO.read(urlImagem);

            ImageIO.write(image, "jpg", file);

            fileAdd = ManagerFactory.getFileManager().add(sessionConfig, Utils.nomeArquivoImagem(urlFile), file,
                    "image/jpg", serviceInstanceIdRepositorioMedia, transaction);

            file.deleteOnExit();

            transaction.commit();

Nos testes surgiu o seguinte problema:

Quando executo o servidor pelo eclipse, tudo ocorre como esperado. Quando executo o servidor pelo próprio Lumis Portal, ele cria o arquivo, que fica com a mensagem "Não há suporte para este formato de arquivo", não baixa a imagem e retorna erro, como se não existisse nenhum arquivo.

Alguém sabe como posso resolver esse problema?

Por Rodolfo

Em 08/12/20 13:38

Acompanhar pergunta

1 resposta(s):

Ordenar por:

Usando Stream para a leitura da imagem, funcionou.

URL url = new URL(urlFile);
			InputStream is = url.openStream();
			OutputStream os = new FileOutputStream(file);

			byte[] b = new byte[2048];
			int length;

			while ((length = is.read(b)) != -1) {
				os.write(b, 0, length);
			}

			is.close();
			os.close();

Por Rodolfo

Em 08/12/20 13:39

Entrar

Interaja com a comunidade e tenha acesso a conteúdos exclusivos.

Houve algum erro ao acessar o banco de dados. Tente novamente mais tarde.