ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Carregar uma imagem em um servidor FTP sem fazer download

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
aalmeidasp
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 24 de Mai de 2010
Mensagens: 191

MensagemEnviada: Dom Set 13, 2015 4:48 pm    Assunto: Carregar uma imagem em um servidor FTP sem fazer download Responder com Citação

Pessoal,


Estou fazendo uma APP que tem que ler algumas imagens de um servidor FTP. porém nao gostaria de ficar transferindo os arquivos para o celular cada vez que tivesse que abrir uma imagem. Queria somente poder carregar o arquivo de imagem em um componente TRectangle sem ter que fazer o download dele. É possivel fazer isso em Delphi?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Dom Set 13, 2015 11:53 pm    Assunto: Responder com Citação

Completamente possivel, voce tem 3 opcoes.

1) magica.

2) voce mostra uma imagem qualquer e diz que é a que vc queria mostrar. A maioria dos usuarios nem presta atencao mesmo...

3) caso sejam sempre as mesmas imagens vc pode fazer um cache.

https://en.wikipedia.org/wiki/Cache_%28computing%29

Tirando isso, só transferindo a imagem propriamtente dita.
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Dom Dez 27, 2015 7:56 pm    Assunto: Re: Carregar uma imagem em um servidor FTP sem fazer download Responder com Citação

aalmeidasp escreveu:
Pessoal,


Estou fazendo uma APP que tem que ler algumas imagens de um servidor FTP. porém nao gostaria de ficar transferindo os arquivos para o celular cada vez que tivesse que abrir uma imagem. Queria somente poder carregar o arquivo de imagem em um componente TRectangle sem ter que fazer o download dele. É possivel fazer isso em Delphi?


Para FTP, use os componente TIdFtp e o TMemoryStream;
com TIdFtp você conecta ao host com user e pass.
com a função IdFTP1.Get() voce pega a imagem do servidor ftp e joga na memoria usando o TMemoryStream
veja o exemplo abaixo.

Código:

procedure TForm2.Button1Click(Sender: TObject);
var
  mstm: TMemoryStream; // este cara vai ser bem útil
begin
  IdFTP1.Host := 'UserName Aqui'; // usuario
  IdFTP1.Password := 'PassWord Aqui'; // senha
  IdFTP1.Port := 21; // padrão ftp 21 mais não nescessariamente será sempre 21.
  IdFTP1.Connect; // conecto a servidor
  mstm := TMemoryStream.Create; // instancia
  IdFTP1.Get('/files/image.png', mstm, true); // pegando a imagem e jogando no TMemoryStream
  mstm.Position := 0; // seto a posição igual a zero
  Image1.Picture.Graphic.LoadFromStream(mstm); // jogando a imagem de TMemoryStream para o timage
  IdFTP1.Disconnect; // desconectando
  mstm.Free; liberando a instancia
end;


neste caso você ainda baixa a imagem, contudo em vez para o disco, ou sdcard baixa diretamente para memoria onde por sua vez quando a aplicação for fechada sumira sem deixar qualquer rastro.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
claudio.ferreira
Profissional
Profissional


Registrado: Quarta-Feira, 18 de Setembro de 2013
Mensagens: 667

MensagemEnviada: Seg Dez 28, 2015 10:02 am    Assunto: Responder com Citação

Seguindo a linha de pensamento do DonOctavio, teria uma quarta opção :

TMI - Transmissão mediúnica de imagens, onde o usuário imagina e vê a imagem requerida na própria mente.
_________________
Sistema SNGPC para farmácias
http://www.cmasistemas.com.br
Rastreabilidade de Medicamentos
https://www.sncm.com.br
Soluções em Delphi
https://delphisolutions.wordpress.com/
.
"E não sabendo que era impossível, foi lá e fez"
Mark Twain
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
aalmeidasp
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 24 de Mai de 2010
Mensagens: 191

MensagemEnviada: Sex Jan 15, 2016 7:12 pm    Assunto: Re: Carregar uma imagem em um servidor FTP sem fazer download Responder com Citação

strak2012 escreveu:
aalmeidasp escreveu:
Pessoal,


Estou fazendo uma APP que tem que ler algumas imagens de um servidor FTP. porém nao gostaria de ficar transferindo os arquivos para o celular cada vez que tivesse que abrir uma imagem. Queria somente poder carregar o arquivo de imagem em um componente TRectangle sem ter que fazer o download dele. É possivel fazer isso em Delphi?


Para FTP, use os componente TIdFtp e o TMemoryStream;
com TIdFtp você conecta ao host com user e pass.
com a função IdFTP1.Get() voce pega a imagem do servidor ftp e joga na memoria usando o TMemoryStream
veja o exemplo abaixo.

Código:

procedure TForm2.Button1Click(Sender: TObject);
var
  mstm: TMemoryStream; // este cara vai ser bem útil
begin
  IdFTP1.Host := 'UserName Aqui'; // usuario
  IdFTP1.Password := 'PassWord Aqui'; // senha
  IdFTP1.Port := 21; // padrão ftp 21 mais não nescessariamente será sempre 21.
  IdFTP1.Connect; // conecto a servidor
  mstm := TMemoryStream.Create; // instancia
  IdFTP1.Get('/files/image.png', mstm, true); // pegando a imagem e jogando no TMemoryStream
  mstm.Position := 0; // seto a posição igual a zero
  Image1.Picture.Graphic.LoadFromStream(mstm); // jogando a imagem de TMemoryStream para o timage
  IdFTP1.Disconnect; // desconectando
  mstm.Free; liberando a instancia
end;


neste caso você ainda baixa a imagem, contudo em vez para o disco, ou sdcard baixa diretamente para memoria onde por sua vez quando a aplicação for fechada sumira sem deixar qualquer rastro.


Obrigado Strak pelo dica, valeu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB