Ir para conteúdo

Arquivado

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

Valdiney F. Lima

Retornando erro ao enviar arquivos por FTP

Recommended Posts

Oi pessoal.

 

Eu fiz uma rotina de envio de imagens para um ftp que eu tenho na internet.

Só que fiz para envio de doze imagens de uma vez, poré está retornando erro...

 

Segue abaixo o meu código...

 

///////////////////////				  // Enviando as FOTOS //				  ///////////////////////				  if foto1 <> '' then					contadorFoto := contadorFoto + 1;				  if foto2 <> '' then					contadorFoto := contadorFoto + 1;				  if foto3 <> '' then					contadorFoto := contadorFoto + 1;				  if foto4 <> '' then					contadorFoto := contadorFoto + 1;				  if foto5 <> '' then					contadorFoto := contadorFoto + 1;				  if foto6 <> '' then					contadorFoto := contadorFoto + 1;				  if foto7 <> '' then					contadorFoto := contadorFoto + 1;				  if foto8 <> '' then					contadorFoto := contadorFoto + 1;				  if foto9 <> '' then					contadorFoto := contadorFoto + 1;				  if foto10 <> '' then					contadorFoto := contadorFoto + 1;				  if foto11 <> '' then					contadorFoto := contadorFoto + 1;				  if foto12 <> '' then					contadorFoto := contadorFoto + 1;				  // Verifica se tem fotos para serem enviadas				  if contadorFoto > 0 then				  begin					if foto1 <> '' then					begin					  nfoto1 := splitstr(foto1,'.',1);					  efoto1 := splitstr(foto1,'.',2);					  foto1  := geraNome(35) +'.'+ efoto1;					end;					if foto2 <> '' then					begin					  nfoto2 := splitstr(foto2,'.',1);					  efoto2 := splitstr(foto2,'.',2);					  foto2  := geraNome(35) +'.'+ efoto2;					end;					if foto3 <> '' then					begin					  nfoto3 := splitstr(foto3,'.',1);					  efoto3 := splitstr(foto3,'.',2);					  foto3  := geraNome(35) +'.'+ efoto3;					end;					if foto4 <> '' then					begin					  nfoto4 := splitstr(foto4,'.',1);					  efoto4 := splitstr(foto4,'.',2);					  foto4  := geraNome(35) +'.'+ efoto4;					end;					if foto5 <> '' then					begin					  nfoto5 := splitstr(foto5,'.',1);					  efoto5 := splitstr(foto5,'.',2);					  foto5  := geraNome(35) +'.'+ efoto5;					end;					if foto6 <> '' then					begin					  nfoto6 := splitstr(foto6,'.',1);					  efoto6 := splitstr(foto6,'.',2);					  foto6  := geraNome(35) +'.'+ efoto6;					end;					if foto7 <> '' then					begin					  nfoto7 := splitstr(foto7,'.',1);					  efoto7 := splitstr(foto7,'.',2);					  foto7  := geraNome(35) +'.'+ efoto7;					end;					if foto8 <> '' then					begin					  nfoto8 := splitstr(foto8,'.',1);					  efoto8 := splitstr(foto8,'.',2);					  foto8  := geraNome(35) +'.'+ efoto8;					end;					if foto9 <> '' then					begin					  nfoto9 := splitstr(foto9,'.',1);					  efoto9 := splitstr(foto9,'.',2);					  foto9  := geraNome(35) +'.'+ efoto9;					end;					if foto10 <> '' then					begin					  nfoto10 := splitstr(foto10,'.',1);					  efoto10 := splitstr(foto10,'.',2);					  foto10  := geraNome(35) +'.'+ efoto10;					end;					if foto11 <> '' then					begin					  nfoto11 := splitstr(foto11,'.',1);					  efoto11 := splitstr(foto11,'.',2);					  foto11  := geraNome(35) +'.'+ efoto11;					end;					if foto12 <> '' then					begin					  nfoto12 := splitstr(foto12,'.',1);					  efoto12 := splitstr(foto12,'.',2);					  foto12  := geraNome(35) +'.'+ efoto12;					end;					// Seta o diretorio para envio das imagens					diretorio := '/public_html/admin_admin/diney/fotos';										// Conectando no FTP					with IdFTP1 do					  try						Username := '33333';						Password := '33333';						Host	 := '127.0.0.1';						Connect;						ChangeDir(diretorio);					  finally					end;					try					  if foto1 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto1+'.'+efoto1, foto1);					  end;					  {					  if foto2 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto2+'.'+efoto2, foto2);					  end;					  if foto3 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto3+'.'+efoto3, foto3);					  end;					  if foto4 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto4+'.'+efoto4, foto4);					  end;					  if foto5 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto5+'.'+efoto5, foto5);					  end;					  if foto6 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto6+'.'+efoto6, foto6);					  end;					  if foto7 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto7+'.'+efoto7, foto7);					  end;					  if foto8 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto8+'.'+efoto8, foto8);					  end;					  if foto9 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto9+'.'+efoto9, foto9);					  end;					  if foto10 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto10+'.'+efoto10, foto10);					  end;					  if foto11 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto11+'.'+efoto11, foto11);					  end;					  if foto12 <> '' then					  begin						Label44.Caption := 'Fazendo upload das fotos selecionadas...';						IdFTP1.Put(nfoto12+'.'+efoto12, foto12);					  end;					  }  					finally					  IdFTP1.Disconnect;					end;				  end;
As variaveis foto1 ... foto12 é onde eu guardo os caminhos da imagem que será enviadas.

 

Espero que possam analizar este código e me orientar melhor nesta questão de envio, pois da forma que esta aí, esta dando uma espécie de TimeOut... Mas não é bem assim o erro.

 

Eu gostaria de achar uma forma melhor de usar esse componente de envio de arquivos para o ftp.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiramente...

 

Boa Noite...

 

Caro colega, poste aew a mensagem correta do erro...

 

e outra coisa...

 

qual foi o meio o qual você utilizou como base???

 

o exemplo da Borland com o Indy???

 

 

Aguardo uma resposta...

 

 

 

Hugo Slepicka! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiramente...Boa Noite...Caro colega, poste aew a mensagem correta do erro...e outra coisa...qual foi o meio o qual você utilizou como base???o exemplo da Borland com o Indy???Aguardo uma resposta...Hugo Slepicka! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Eu apenas vi os atributos do componente IdFTP1 da paleta Indy na ajuda do Delphi... e fiz a implementação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Valdiney...

 

funciona da seguinte forma o FTP...

 

Para que você não tenha problemas de TIME OUT, você precisa enviar um arquivo por vez..

 

ou seja...

 

 

você terá q fazer um for, passando o nome dos arquivos que deseja enviar, pq dai ele inicia uma transação, termina, inicia o 2º arquivo, termina, inicia o 3º e assim em diante...

 

se você tentar dessa forma, enviando um de cada vez, o problema de TIME OUT acaba...

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

 

 

Nem tenho em delphi cara... o que eu cheguei a ver é da própria borland ensinando como fazer um ftp, mas ñ funciona muito bem!!!

 

 

vou ver se encontro aqui e disponibilizo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você terá q fazer um for, passando o nome dos arquivos que deseja enviar, pq dai ele inicia uma transação, termina, inicia o 2º arquivo, termina, inicia o 3º e assim em diante...se você tentar dessa forma, enviando um de cada vez, o problema de TIME OUT acaba...

Como eu faria um FOR?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, existem n formas de se fazer isso...Primeiramente...como você está fazendo no form para selecionar os arquivos????

é muito simples...Tenho doze botões onde cada um corresponde a uma imagem. Quando o cara clica por exemplo no botão 1, ele chama o OpenPictureDialog onde ele seleciona a imagem... Quando a imagem for selecionada, automaticamente é enviada para a variavel do tipo string o endereço da imagem....As variaveis são fotot1, foto2 ... foto12Ou seja, as variaveis que nao estiverem vazias serão enviadas para o FTP.Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...

 

simulando...

 

vou utilizar um Edit, um BitBtn e um OpenDialog para selecionar as imagens...

 

ai quando você selecionar você manda para o array o nome da imagem...

 

ai depois o Botão de enviar faz:

 

 

For i := 0 to Tamanho_do_array doBegin   Envia_a_imagem(array[i]);   Encerra_a_transação;End;showmessage('Enviadas');

 

Apenas um exemplo sem muitos códigos... http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...simulando...vou utilizar um Edit, um BitBtn e um OpenDialog para selecionar as imagens...ai quando você selecionar você manda para o array o nome da imagem...ai depois o Botão de enviar faz:

For i := 0 to Tamanho_do_array doBegin   Envia_a_imagem(array[i]);   Encerra_a_transação;End;showmessage('Enviadas');
Apenas um exemplo sem muitos códigos... http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif
1- Eu quero criar um array para doze posições2- Preciso saber quantos elementos ja tem dentro do arrayAbraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdiney...

 

postei nesse meu link um exemplo...

 

Utilizando:

 

- Array de tamanho dinâmico...

- For relacinado ao tamanho do array, listando os itens em uma list box...

 

 

Agora o que falta para você é pegar isso e ao invés de listar no listbox, você chamar a procedure de enviar arquivos...

 

 

beleza?

 

O Download pode ser encontrado nesse LINK !!!!

 

 

Abração!!!! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

 

 

depois posta aew uma satisfação para saber se deu certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdiney, chegando em casa eu posto aki um exemplo para esse seu caso!!!flw aew!!! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Então Hugo...Depois de selecionar as 12 fotos que eu quero enviar, teria que ter um botão ENVIAR.Esse botão teria que percorrer todo o ListBox e ir enviando de um a um... Como eu faria isso?O fato é que esse programa vai funcionar em TEMPO REAL na internet... Só que eu não quero que o usuário envie as fotos de uma a uma... Primeiro eu quero que ele selecione todas as fotos e depois ao clicar no botão, que as doze fotos possam ser enviadas...Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi o exemplo que você me mandou Hugo.Agora eu tenho um array -> ( Onde ) que contém todos os endereços das imagens.Agora como eu faço para percorrer todo o array e a media que vai pulando de elemento dentro do array, o mesmo elemento seja enviado para o FTP?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, no exemplo em que lhe passei, eu fiz ele listar os itens do array no listbox...

 

 

o local onde você deve fazer a sua rotina de envio é aqui:

 

//Se a quantidade de itens no Array for maior que 0...  If (Length(Onde)) > 0 then  begin	 //para i = 0 até o tamanho do array - 1...	 for i := 0 to (Length(Onde) - 1) do	 begin		//Inserir a Rotina de Envio Aqui...	 end;  End;

 

Agora me diz uma coisa, a rotina de envio você tem???

 

ou não????

 

 

flw aew! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, no exemplo em que lhe passei, eu fiz ele listar os itens do array no listbox...o local onde você deve fazer a sua rotina de envio é aqui:

//Se a quantidade de itens no Array for maior que 0...  If (Length(Onde)) > 0 then  begin	 //para i = 0 até o tamanho do array - 1...	 for i := 0 to (Length(Onde) - 1) do	 begin		//Inserir a Rotina de Envio Aqui...	 end;  End;
Agora me diz uma coisa, a rotina de envio você tem???ou não????flw aew! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif
Enão eu vi isso sim no exemplo...Não tenho a rotina de envio não. Pois da maneira que eu fazia antes não estava dando certo.

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.