Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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?
você pode fazer isso atraves de componenete tb...
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...
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 IFSet 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>" ) Response.Write( "Não é possível listar os arquivos em " & sFilename & "<BR>" )
Response.Write( Err.Description & " #" & Err.Number & "<BR><BR>" )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
%>
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
você pode executar um com k execute o comando via DOS, existem alguns....
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!
Isto pode te auxiliar
É... 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!
beleza...
maravilha
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!