Fórum Compartilhar file via web #184599
27/09/2003
0
alguem aí sabe como, tem um demo, ou um componente mais específico para se transferir um arquivo entre duas máquinas assim via internet?
Eu tentei com o indy, até q quase deu certo, mas as permissões pra um só arquivo q seria especificado pelo client não dác erto pra selecionar e enviar...
Então alguem tem uma saída aí pra fazer um meio de transferir arquivo de uma máquina pra outra?
Valew
Lipsil
Curtir tópico
+ 0Posts
27/09/2003
Henry
Minha rotina funciona assim, fiz com as sockets da palheta Internet.
Configurações do ClientSocket:
Address:= Ip da maquina aonde esta o servidor.
Port:= Porta pela qual vai ser passado o arquivo(Escolha qualquer uma, mas cuidado com as portas definidas, tipo 21 do FTP, 25 do SMTP)
active:= false;//Por enquanto
Coloque um opendialogbox, da paleta dialog pra puxar o arquivo pra dentro do programa, tipo, um txt, puxe pra dentro de um MEMO, e aplique o seguinte codigo no botão enviar:
Clientsocket1.active:= true;
clientsocket1.socket.sedtext(memo1.lines);
clientsock1.active:= false;
Ai no servidor, vc coloca(Object inspector)
Port:= Mesma do client;
Active:= true;
// Sempre o servidor tem que ser aberto antes do programa cliente.
No evento OnclientRead bote o seguinte codigo:
memo2.Lines.add(Serversocket1.Socket.ReceiveText);
Assim vc transfere um Txt para outro PC. Para outros formatos, é o mesmo codigo, basta só trocar a extensão e alguns codigos da socket, blz Brother?? Qualquer coisa me da um toque No E-mail, ou uma MP.
Espero ter ajudado, Henry.
Gostei + 0
27/09/2003
Lipsil
Este teu código tem sentido mesmo, ele primeiro passaria o cód fonte de um arquivo e depois salvaria o cód para uma outra máquina, porém, esta operação eu acredito q vá gastar um bucado de memória não acha? ou não?
tipo usando o componente TrivialFTP da indy eu fiz o seguinte e quase q deu, porém ele trava, as vezes não envia, e outros problemas.
pra fazer o upload seria:
with TrivialFTP do begin Host := edtHost.Text; Put(edtLocalFile.Text, ExtractFileName(edtLocalFile.Text)); end;
ok, aí acima enviaria o arquivo do edtlocalfile.
Agora para baixar seria:
var strm: TFileStream; begin strm := TFileStream.Create(ExtractFileName(´1´+edtRemoteFile.Text), fmCreate); with TrivialFTP do try Host := edtHost.Text; Get(edtRemoteFile.Text, strm); finally strm.Free; end; end;[quote] Bem, agora iria pegar o q foi enviado e extrair o mesmo para edtremotefile e assim agora buscar o edtremotefile para o mesmo porém nomeado com o "1" antes... Mas não esta funfando muito certinho isso :-(.... O q será q poderia ser feito aí? Valew
Gostei + 0
27/09/2003
Henry
Gostei + 0
27/09/2003
Lipsil
mas como q seria pra colocar o cód fonte de um arquivo dentro de um memo, e depois de enviado, como salvar o conteudo do memo pra ser o font de um EXE?
Gostei + 0
27/09/2003
Henry
Gostei + 0
27/09/2003
Lipsil
o q queris seria tipo assim, eu tenho aqui o arquivo Teste.EXE, e eu gostaria de passar pra ti por exemplo este arquivo. Então como q eu poderia fazer pra passar esse arquivo pra vc?
pelo seu cód eu vi q poderia fazer copiando o cód fonte do arquivo pra uma máquina a outra, e depois de copiar o arquivo, esse seria salvo como memo1.Lines.SaveToFile(´Teste.exe´); ..... entendeu?
tipo deste teu jeito se o arquivo não for danificado fica blz, e o q vc acha?
Gostei + 0
27/09/2003
Henry
Gostei + 0
27/09/2003
Lipsil
eu tentei com o ftp do indy, o TrivialFTP q inclusive já vem com um demo junto, só q este é só pra abrir a máquina. e eu queria era além de abrir a máquina para apenas um arquivo, fazer com q só uma máquina pegue este arquivo e depois desconecte esta porta por segurança.. mas estou loko aqui e não ta funfando o cód q eu já passei acima aí....... tu saberia me dizer então como fazer isso?
Valew
Gostei + 0
27/09/2003
Henry
Dai te mando um E-mail ou uma MP te contatando.
Um abraço, Henry.
Gostei + 0
27/09/2003
Lipsil
Ficarei no aguardo de contato seu ;-)
Valew
Gostei + 0
24/10/2003
Xandyr
Desde já valeu.
Gostei + 0
24/10/2003
Henry
Gostei + 0
24/10/2003
Henry
Obs: Delphi6
Gostei + 0