Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

Ftp

Recommended Posts

Enviar / receber arquivos via FTP em ASP sem usar um componente. Muito prático para hospedagem compartilhada ambientes onde os usuários individuais não podem instalar seus próprios componentes

 

<%@ Language=VBScript %>
<%
' FTP via ASP sem o uso de componentes 
'
'Este script assume que o arquivo seja FTP'ed está no mesmo diretório que o script. 
'Você pode especificar no ftp_files_to_put (por exemplo, *. txt). 

'Você precisa ter C: \ WINDOWS \ system32 \ wshom.ocx registrado para usar o objeto WScript.Shell. 
'Ela está registrada por padrão, mas às vezes é removido por razões de segurança 

'Você também vai precisar cmd.exe no caminho
'Verifique com o seu host em caso de dúvida.

Dim objFSO, objTextFile, oScript, oScriptNet, oFileSys, oFile, strCMD, strTempFile, strCommandResult
Dim ftp_address, ftp_username, ftp_password, ftp_physical_path, ftp_files_to_put

'Edit essas variáveis para combinar com suas especificações
ftp_address          = "ftp.server.com"
ftp_username         = "username"
ftp_password         = "password"
ftp_remote_directory = "subdirectory" 'Deixe em branco se o upload para diretório raiz
ftp_files_to_put     = "file.txt"     
On Error Resume Next
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.CreateTextFile(Server.MapPath("test.ftp"))
objTextFile.WriteLine "lcd " & Server.MapPath(".")
objTextFile.WriteLine "open " & ftp_address
objTextFile.WriteLine ftp_username
objTextFile.WriteLine ftp_password

'Verifique para ver se precisamos emitir uma' cd 'command
If ftp_remote_directory <> "" Then
   objTextFile.WriteLine "cd " & ftp_remote_directory
End If

objTextFile.WriteLine "prompt"


If Instr(1, ftp_files_to_put, "*",1) Then
   objTextFile.WriteLine "mput " & ftp_files_to_put
Else
   objTextFile.WriteLine "put " & ftp_files_to_put
End If
objTextFile.WriteLine "bye"
objTextFile.Close
Set objTextFile = Nothing
'Cmd.exe Use para executar ftp.exe, parsing comando arquivo recém-criado
strCMD = "ftp.exe -s:" & Server.MapPath("test.ftp")
strTempFile = "C:\" & oFileSys.GetTempName( )
'saída de cmd.exe para um arquivo temporário 
Call oScript.Run ("cmd.exe /c " & strCMD & " > " & strTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (strTempFile, 1, False, 0)

On Error Resume Next
'Pega a saída do arquivo temporário
strCommandResult = Server.HTMLEncode( oFile.ReadAll )
oFile.Close
'Eliminar os temporários e os arquivos ftp-comando
Call oFileSys.DeleteFile( strTempFile, True )
Call objFSO.DeleteFile( Server.MapPath("test.ftp"), True )
Set oFileSys = Nothing
Set objFSO = Nothing
'Mostra o resultado da sessão de FTP para a tela
Response.Write( Replace( strCommandResult, vbCrLf, "<br>", 1, -1, 1) )
%>

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.