Como baixar uma imagem direto pela internet via AdvPL

Por acaso você já precisou baixar alguma imagem e usar em um relatório ou tela em AdvPL? Saiba como fazer isso no artigo de hoje.

Se você atende algum cliente TCloud, e sabe como é oneroso ficar baixando imagens e colocando dentro da Protheus Data, existe uma solução mais fácil para isso.

Primeiramente a imagem tem que estar hospedada em algum lugar, por exemplo, no próprio site da empresa. Supondo que a imagem seja empresa.com/logo.png.

Agora o segundo passo, é definir o caminho local da imagem, iremos colocar na pasta temporária do sistema operacional.

Por último, vamos verificar se o arquivo não existe, se não existir, iremos dar um HttpGet do link, e um MemoWrite para gravar a imagem, conforme exemplo abaixo:

//Imagem da URL
cUrl := "http://empresa.com/logo.png"

//Imagem no caminho local
cImgLocal := GetTempPath() + "logo_empresa.png"

//Se o arquivo não existir, faz o download dele
If ! File(cImgLocal)
	MemoWrite(cImgLocal, HttpGet(cUrl))
EndIf

Após fazer o download, ai basta você usar em telas ou relatórios (como no método SayBitmap).

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

2 Responses

  1. rafael disse:

    e se tiver um arquivo ZIP, é possível baixar?

Deixe uma resposta