Ir para conteúdo

POWERED BY:

Arquivado

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

Dinhus

Salvar imagens da Galeria de Fotos

Recommended Posts

Boa Tarde a todos.

 

O meu problema é o seguinte: tenho uma galeria de fotos controlada por um XML.

O que eu preciso é que a cada foto que apareça na galeria, possa dar a possibilidade para o usuário salvar aquela foto em seu computador.

Se precisarem do action script da galeria ou do XML, avisem que coloco aqui.

 

Para informação, estou usando o Flash MX 2004 com XML em um site feito em ASP.NET

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está usando ASP.net ... eu n vo poder ajudar mto quanto a codificação, mas posso dar ideias do que você tem que fazer.

 

Crie no XML um nós que se chame save e coloque a URL completa da foto ali

E ai com o Flash você passar esse nó chamado save para um botão de salvar... no qual vai ter o código:

 

getURL("URL QUE VEM DO SERVIDOR");// ex: http://forum.imasters.com.br/random_logos/logo2.png

 

E ai quando o usuário clicar ele vai ser mandado para essa URL ele vai clicar na imagem com o botão direito e salvar...

Se você quiser você pode colocar um caminho que vai ter um arquivo com header para salvar a imagem... reconhecido pelo browser...

 

Como se usa no PHP por exemplo:

header("Content-Disposition: attachment; filename=" . urlencode($file)); 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer"); 
header("Content-Length: " . filesize($file));

 

E isso aqui seria em ASP:

Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(virtualPath);
Response.ContentType = "";
Response.End(); 

Espero que resolva teu problema

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite Beserck.

Eu já tinha pensado em usar um outro xml so para salvar as fotos.

Dai você complemento a idéia e fui fazer isso.

Mas me surgiu outro problema: o xml possui esses dados:

 

<fotos>
 <foto urll="Imagens\playerFotos\Player\CER\grande\guto_nicole2.jpg"/>
 <foto urll="Imagens\playerFotos\Player\CER\grande\montanaFuriosa.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\montana_guto_nicole3.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\golf_semnome3.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\golf_boy.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\geral.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\galeraToda.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\dany_semnome.jpg"/> 
 <foto urll="Imagens\playerFotos\Player\CER\grande\bike_verdao.jpg"/> 
 
</fotos>

certo. Daí como que eu vo fazer para passar o getURL com o endereço de cada foto do xml referente a mesma foto que apareceu na galeria?

A galeria ta mostrando a foto nessa mesma sequencia desse xml ai. Mas como vo faze para abrir apenas a foto que aparece na galeria?

 

o botao que chama a foto ta com esse code:

 

salvar.onPress = function(){
	for (var i = 0; i<caminho.length; i++) {
		
	 getURL(arquivo.childNodes[i].childNodes[i].attributes.urll);
		
 }

			}

caminho é um array que está assim:

 

var arquivo:XML = new XML();
arquivo.load("urll.xml");
arquivo.ignoreWhite = true;
arquivo.onload = function() {
	//primeiro nó: urll;
			var u = this.firstChild.childNodes;
			//listando conteúdo do nó e inserindo no array de fotos
			for (var i = 0; i<u.length; i++) {
				var ur:Object = new Object(); //criando o objeto de cada url
				ur = u[i].attributes.urll;
				caminho.push(ur);
			}
}

Me ensinaram a fazer assim. Não sei se essa é forma correta. Até que funcionou. Mas só esta mostrando a primera foto do urll.XML. E mesmo com a galeria em outra foto, ela aparece no browser a primera foto do urll.XML.

 

O código da galeria, eu achei aqui no site do iMasters mesmo, e não to conseguindo juntar as informações para que o botao salvar mostre no browser a mesma foto que ta aparecendo na galeria.

 

A galeria foi feita pelo Lucas Ferreira no artigo: Galeria de fotos facillitada.

Caso não tenha esclarecido, eu refaço a dúvida.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara quando você criou a galeria você deu um ID para cada MovieClip

Se não deu deveria ter dado... pois para colocar ações para cada MovieClip você vai precisar do ID dele

 

Ai com o id você no botão de salva... que vai ser trocado toda vez que abrir a nova foto... vai só puxar o id do clip e abria

 

Exemplo:

btnSave.onPress = function(){
 getURL(caminho[id]);
}

Onde a variavel id é alimentada quando se abre uma foto

 

thumb.onPress = function(){
 mcl.loadClip(fotos[i], mc);
 id = i;
}

Ou algo parecido com isso

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite beserck.

Gostaria de agradecer por estar tentando me ajudar.

Mas não consegui fazer isso que você me falou para fazer.

Gostaria de pedir, caso possa, que olhe o artigo do Lucas e tente, observando o script, me auxiliar nessa dúvida. Ou se não, tente me ajudar de outra forma sem precisar lê o artigo.

Tudo, claro, se você puder.

 

O link do artigo é este: Galeria de fotos facillitada

 

Obrigado pela atenção.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara seu problema é muito simples de ser resolvido :D

 

var fileref:FileReference = new FileReference();

irá baixar a foto correspondente do item 4 do xml, já que consideramos o zero

 

ps: coloque a linha:

 

fileref.download(new URLRequest(u[3].attributes.urll));

no bloco de código do onClick

 

e a linha:

 

var fileref:FileReference = new FileReference();

No topo do seu código meio assim:

 


var fileref:FileReference = new FileReference();

function onClick(url:String):void
{
fileref.download(new URLRequest(url));
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Irineu.

 

Sua dica é diferente das que eu já vi.

Mas to tentando me localizar para adicionar esse script e não to encontrando. Poderia ser mais especifico quanto a posição que devo colocá-lo para que de certo?

Porque o meu problema é consegui fazer com que, ao clicar no botão para salvar, ele pegue a mesma foto que está sendo exibida na galeria e solte no navegador para baixar. Poderia ser de 2 formas: ou abrir a foto externamente para que a pessoa clique com o botão direito em cima e selecione "Salvar imagem como..." ou naquela janela do windows que abre para salvar a imagem no Desktop, Meus Documentos, etc.

 

Grato pela disposição em ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um botao para download, e quando clicar nele, executar a função correspondente como este código:

 

var fileref:FileReference = new FileReference();

btn_Download.onRelease=function(){
fileref.download(new URLRequest("endereço_da_imagem.jpg"));
}

Quando eu clicar no botao ele vai executar a função e pronto ;)

 

O filereference faz com que apareça uma janela de dialogo para a pessoa baixar o arquivo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Err... AS 2 não precisa do new URLRequest

 

Da uma lida aqui :P

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001046.html

 

Irineu me lembro realmente do metodo de download do filereference...

Esqueci completamente que ele existia em AS2... achei q só tinha em AS 3 ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

Logo que o Irineu falou do FileReference, já cai de cara para fazer. Mas deu o seguinte erro:

The class 'flash.net.FileReference' could not be loaded.

Pois bem, antes de mandar qualquer besteira aqui no fórum, fui atrás de exemplos na internet à fora.

Entre todos, vi vários dizendo que essa classe do FileReference só funciona no AS3 com publicação do .swf acima do flash 7.

O meu flash é o MX 2004, que portanto é o flash 7.

 

Daí fui até aonde o beserck me mandou. Li tudo lá e lá também tem um exemplo do FileReference com o título de AS2. Mas que também deu este mesmo erro:

The class 'flash.net.FileReference' could not be loaded.

Então a dúvida é essa: esse tal de FileReference só funciona, para publicação do .swf, acima do Flash 7?

 

Obrigado pela ajuda de todos.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim a FileReference é da versão 8 em diante :(

 

Então acredito que você não vai poder usar a não ser que você atualize isso ai rapaz :(

Não poderia ter nem um CS 3 a lá moda Brasileira ai?

 

Eu sei que é errado... e eu não devo digo que você deva baixar o programa... mas ah coisas que ficam muito mais faceis nas versões mais novas.

Qualquer coisa também é só comprar ;)

 

Se não der... sempre da pra forçar download com PHP ai você faz um script e chama ele com AS 2 e força o download dos arquivos :)

 

Abraços

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.