Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

allan.web

Transformar codigo fonte em Imagem

Recommended Posts

Ola pessoal, estou com um problemão aqui, desenvolvi um site que tem integração com o sistema interno da empresa, e esse sistema interno gera um XML para pegar as imagens, sendo que não aparece o caminho das imagens e sim o codigo fonte delas, precisaria pegar esse fonte e transformar ele num arquivo .jpg , o codigo xml começa assim:

 

<?xml version="1.0" encoding="ISO8859-1"?><Document xmlns:dt="urn:schemas-microsoft-com:datatypes">	<Registro>		<Codigo dt:dt="string">80002.001.V</Codigo>		<TipoImovel dt:dt="string">Sobrado</TipoImovel>		<Sequencia dt:dt="string">1</Sequencia>		<Imagem dt:dt="bin.base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6A

Se alguem puder me ajudar fico muito grato.

 

Abraços.

Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega.Basta criar um arquivo pelo FileSystemObject e salvar como "jpg" ou "bmp", seja lá qual for a extensão.Faça um teste. Crie um arquivo texto, copie e cole o código, e renomeie-o, com a extensão desejada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Marcelo.Ja havia tentado fazer dessa forma, mas não funciona não, se tiver outra ideia agradeço.Obrigado.Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega.

Tente assim.

 

'Coloque o conteúdo do XML em uma variavelvarIMagem = objXML.getElementsByTagname("Imagem").item(0).TextSet objStr = Server.CreateObject("ADODB.Stream")objStr.Type = 1 'BinaryobjStr.OpenCall objstr.Write(varImagem)Call objStr.SaveToFile("C:\minhaImagem.jpg",1)objStr.Close

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Marcelo. Não mexi muito com XML, mas como faço para chamar o meu XML para que ele faça a leitura dessa tag no asp e crie esse arquivo?..Grato.Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, você falou para eu utilizar isso: varIMagem = objXML.getElementsByTagname("Imagem").item(0).Texto que ele vai pegar ali é a Tag "imagem" de dentro do arquivo .XML , o que não sei fazer é chamar o XML, pq de alguma forma ele vai ter que ler o XML para encontrar a Tag mensionada. você pode me ajudar com isso? :rolleyes: ObrigadoAllan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem mais pode me ajudar com isso? É muito importante.Obrigado.Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Marcelo.

 

Coloquei assim:

 

Set objXML = Server.CreateObject("MSXML2.DOMDocument")

Call objXML.load(server.MapPath("FOTOS.XML"))

 

'Coloque o conteúdo do XML em uma variavel

varIMagem = objXML.getElementsByTagname("Imagem").item(0).Text

 

Set objStr = Server.CreateObject("ADODB.Stream")

objStr.Type = 1 'Binary

objStr.Open

Call objStr.Write(varIMagem)

Call objStr.SaveToFile(server.MapPath("TESTE"),1)

objStr.Close

 

 

Sendo que a variavel ele ta pegando certinho, porem ele da erro na linha 11 que é a que ta em negrito ai em cima, o erro que da é esse:

 

ADODB.Stream erro '800a0bb9'

 

Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

 

/ORBI_IMOVEIS/FONTE/teste_imagem_2.asp, line 11

 

 

 

Para testar tirei essa linha pra testar, ai ele da erro ao gravar o arquivo, você pode me ajudar com isso?.

 

Obrigado.

Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allan,Dá um "Response.Write" na variavel "varImagem" e veja se o conteúdo está correto.Deve ser igual ao que aparece dentro do arquivo XML.E depois não esqueça de definir a extensão do arquivo, que só está como "Teste"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Marcelo, dei um response na variavel, e essa aparece certinho, se tiro a linha "Call objStr.Write(varIMagem)" ele ja cria o arquivo, vazio, mas cria, porem quando ela está la ele da o mesmo erro nessa linha.Erro:##########################################ADODB.Stream erro '800a0bb9' Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito. /ORBI_IMOVEIS/FONTE/teste_imagem_2.asp, line 11 ##########################################você tem alguma ideia do que pode estar acontecendo?.Obrigado.Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allan,

Resolvido.

Set obj = Server.CreateObject("MSXML2.DomDocument")Call obj.load(Server.MapPath("fotos.xml"))objItem = obj.getElementsByTagname("Imagem").item(0).nodeTypedValue Set objStr = Server.CreateObject("ADODB.Stream")objStr.Type = 1objstr.Open Call objStr.Write(objItem)Call objStr.SaveToFile("C:\imagem.jpg",2)objstr.CloseSet objStr = nothing

Perceba que, o que estávamos fazendo de errado, era o modo de leitura do XML, ao invés de "TEXT" tínhamos que usar "NodeTypedValue"

 

At.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Heeeeee, muito obrigado, ja tava ficando maluco aqui com isso ai.Muito obrigado mesmo.Abraços.Allan

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.