Ir para conteúdo

POWERED BY:

Arquivado

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

Leo Almeida

[Resolvido] Download via FTP

Recommended Posts

Boa tarde a todos,

 

Amigos, me deparei com um grande problema hoje cedo e até agora não consegui resolver...

Preciso acessar uma página do ftp pegar um arquivo de lá e fazer o download para o meu servidor local automaticamente.

 

Já procurei em tudo quanto é lugar, e os códigos quase sempre são os mesmos em tudo quanto é fonte, no final das contas, não achei nada parecido que faça isso.

 

Obs.: Não posso ter custo adicional com componentes de terceiros.

 

Simplesmente quero acessar o ftp, pegar o arquivo e salvar no servidor...

 

Será que uma alma caridosa poderia salvar minha vida com uma luz?

 

Aguardo a resposta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso precisa acessar uma pasta correto?

 

você pode forçar o download do arquivo com um script que tem no laboratorio de script ou caso queria mais detalhado, usar FSO para mais informações!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Ted k',

 

Obrigado pela resposta rápida!

 

Acessei o laboratório de script como instruiu, e os códigos que eu achei, são do tipo que "forçam download", aparece o download para o usuario efetuar...

Queria algo automático, do tipo que entra no ftp (locaweb) copia os arquivos e passa para meu servidor local.

 

Alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer isso atraves de componenete tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi minha primeira idéia Xanburzum, mas não encontrei um gratuito, como eu disse antes, não posso ter custos a mais com esse projeto... mas obrigado pela ajuda... se conhecer algum componente gratuito bom, por favor me fale, ainda estou a procura...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se ajuda...

 

<%@ LANGUAGE="VBSCRIPT" %>

<%
'--------------------------------------------------------------
' Xceed FTP Library - FTP Client sample application
' Copyright (c) 2000 Xceed Software Inc.
'
' [FtpClient.asp]
'
'Este exemplo simples demonstra como recuperar uma lista dos itens 
'Em uma pasta usando o método GetFolderContents.
'
' Download the full application
' http://www.xceedsoft.com/cs/result.asp?id=136
'--------------------------------------------------------------

Dim xFtp
Dim sServerAddress
Dim sPort
Dim sUsername
Dim sPassword
Dim sFolder


Set xFtp = CreateObject( "XceedSoftware.XceedFtp" )	' reate our Xceed Ftp object

'Se você estiver usando a versão de avaliação gratuita do Xceed FTP Library, você 
'A necessidade de executar o programa versão trial Xceed FTP instalação 
'Se você é um usuário registrado, uncomment a seguinte linha 
'E substituir o texto entre aspas com a sua chave de licença.
		
' Call xFtp.License("Sua chave de licença vai aqui")

sServerAddress = trim( Request( "ServerAddress" ) )
sPort          = trim( Request( "Port" ) )			
sUsername      = trim( Request( "Username" ) )		
sPassword      = trim( Request( "Password" ) )		
sFolder        = trim( Request( "Folder" ) )	
xFtp.ServerAddress = sServerAddress		
xFtp.ServerPort    = sPort			
xFtp.Username      = sUsername				
xFtp.Password      = sPassword			
On Error Resume Next

Call xFtp.Connect()	'Conecta FTP server

If Err.Number = 0 Then
   Response.Write( "<B>Conectado a " & sServerAddress & "<BR><BR></B>" )	
   

   Call ObtainFolderListing( sFolder )	
   
   If Err.Number <> 0 Then
      Response.Write( Err.Description & " #" & Err.Number & "<BR><BR>" )	
   End IF
Else
   Response.Write( Err.Description & " #" & Err.Number & "<BR><BR>" )	
End If

Set xFtp = Nothing				
Set xFolderItems = Nothing

Public Sub ObtainFolderListing( sName )

Dim xFolderItems	
Dim xItem
Dim sNewFolder

On Error Resume Next


Set xFolderItems = xFtp.GetFolderContents( sName, 0 )
Call RetrieveParentFolder( sFolder )

If Err.Number = 0 Then
   Response.Write( "<TABLE WIDTH=""600"" BORDER=""2"" CELLSPACING=""0"" CELLPADDING=""0"">" & _
                   "<TR  BGCOLOR=""BLUE"">" & _
                      "<TD ALIGN=""CENTER""><B><FONT COLOR=""WHITE"">Date</FONT></B></TD>" & _
                      "<TD ALIGN=""CENTER""><B><FONT COLOR=""WHITE"">Size (in bytes)</FONT></B></TD>" & _
		      "<TD ALIGN=""CENTER""><B><FONT COLOR=""WHITE"">Type</FONT></B></TD>" & _	
                      "<TD ALIGN=""CENTER""><B><FONT COLOR=""WHITE"">Name</FONT></B></TD>" & _
                   "</TR>" )      
	
      For Each xItem In xFolderItems

      Select Case xItem.ItemType
      Case 0	'Is a file 
         Response.Write( "<TR>" & _
                            "<TD WIDTH=""200"">" & xItem.Date & "</TD>" & _
                            "<TD WIDTH=""100"">" & xItem.FileSize & "</TD>" & _ 
                            "<TD WIDTH=""100"">File</TD>" & _
                            "<TD WIDTH=""200""><A HREF=""Ftp://" & sUsername & ":" & sPassword & "@" & sServerAddress & ":" & sPort & "/" & sFolder & "/" & xItem.ItemName & """>" & xItem.ItemName & "</A></TD>" & _
                         "</TR>" )

      Case 1	
         sNewFolder = sFolder	
            
	 If ( Len( sNewFolder ) > 0 ) Then
            sNewFolder = sNewFolder & "/"
         End If

         sNewFolder = sNewFolder & xItem.ItemName 'Set the new path and folder


	 Response.Write( "<TR>" & _
                            "<TD WIDTH=""200"">" & xItem.Date & "</TD>" & _
                            "<TD WIDTH=""100"">" & xItem.FileSize & "</TD>" & _ 
                            "<TD WIDTH=""100"">Directory</TD>" & _
                            "<TD WIDTH=""200""><A HREF=""XceedFtp.asp?ServerAddress=" & sServerAddress & "&Port=" & sPort & "&Username=" & sUsername & "&Password=" & sPassword & "&Folder=" & sNewFolder & """ > " & xItem.ItemName & "</A></TD>" & _
                         "</TR>" )

      Case 2	'link
         If LinkType( xItem.ItemName ) = "folder" then
	
            sNewFolder = sFolder

            If ( Len( sNewFolder ) > 0 ) Then
               sNewFolder = sNewFolder & "/"
            End If	 
  
            sNewFolder = sNewFolder & xItem.ItemName 

            Response.Write( "<TR>" & _
                               "<TD WIDTH=""200"">" & xItem.Date & "</TD>" & _
                               "<TD WIDTH=""100"">" & xItem.FileSize & "</TD>" & _ 
                               "<TD WIDTH=""100"">Directory Link</TD>" & _
                               "<TD WIDTH=""200""><A HREF=""XceedFtp.asp?ServerAddress=" & sServerAddress & "&Port=" & sPort & "&Username=" & sUsername & "&Password=" & sPassword & "&Folder=" & sNewFolder & """ > " & xItem.ItemName & "</A></TD>" & _
                            "</TR>" )	
         Else
            If LinkType( xItem.ItemName ) = "file" Then
               Response.Write( "<TR>" & _
                                  "<TD WIDTH=""200"">" & xItem.Date & "</TD>" & _
                                  "<TD WIDTH=""100"">" & xItem.FileSize & "</TD>" & _ 
                                  "<TD WIDTH=""100"">File Link</TD>" & _
                                  "<TD WIDTH=""200""><A HREF=""Ftp://" & sUsername & ":" & sPassword & "@" & sServerAddress & ":" & sPort & "/" & sFolder & "/" & xItem.ItemName & """>" & xItem.ItemName & "</A></TD>" & _
                               "</TR>" )
           End If
	End If

      End Select	
      Next
   Response.Write( "</TABLE>" )
Else
   Response.Write( "Não é possível listar os arquivos em " & sFilename & "<BR>" )
   Response.Write( Err.Description & " #" & Err.Number & "<BR><BR>" )
End If

End Sub

Public Sub RetrieveParentFolder( sName )

Dim sParentFolder 
Dim nPos

If Len( sName ) > 0 Then
   Call xFtp.ChangeCurrentFolder( sName )	' Alterar a pasta remota

End If

sName = xFtp.CurrentFolder			' pasta atual
nPos = InStrRev( sName, "\" )
sParentFolder = Mid( sName, 1, nPos )		' pasta para recuperá-lo do pai

Response.Write( "<TABLE WIDTH=""600"" BORDER=""0"" CELLSPACING=""0"" CELLPADDING=""0"">" & _
                "<TR>" & _
                   "<TD WIDTH=""500"" ALIGN=""LEFT""><B>Você está atualmente localizada em " & sFolder & "</B></TD>" & _
                   "<TD WIDTH=""100"" ALIGN=""RIGHT""><A HREF=""XceedFtp.asp?ServerAddress=" & sServerAddress & "&Port=" & sPort & "&Username=" & sUsername & "&Password=" & sPassword & "&Folder=" & sParentFolder & """ >Parent Folder</A></TD>" & _
                "</TR>" & _
                "</TABLE>" )              

End Sub

'Public Function LinkType( sName )

On Error Resume Next

Call xFtp.ChangeCurrentFolder( sName )

If Err.Number = 0 then
   LinkType = "folder"
Else
   LinkType = "file"
   Err = 0 
End If

End Function



%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que você vai ter que fazer um programa que conecta via DOS, só não sei se tem como fazer o download pelo DOS

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode executar um com k execute o comando via DOS, existem alguns....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos, irei tentar pelo DOS...

Xanburzum, o script que passou usa um componente pago (Xceed FTP Library) R$ 720,00 a licensa! :blink:

pra mim não dá... mas mesmo assim obrigado...

 

conseguindo algo irei postar aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... o jeito foi apelar para o DOS mesmo...

funcionou...

 

digitei ftp depois help e apareceu a lista de comandos...

 

fiz algo parecido com isso...

ftp
o
ftp.nomedoserver.com.br
login
senha
get
caminhoDoArquivoNoServidor
caminhoParaSalvarOArquivo
quit

Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...

maravilha

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.