1Respostas

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?

Em 08/12/2020 13:38
Resolvido

1 Respostas

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();

Em 08/12/2020 13:39
Responder

Acompanhar pergunta

Receba atualizações e novas respostas por e-mail, e ajude a resolver as dúvidas da comunidade.

Realize Login para poder seguir!