Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

[Resolvido] FTP sem o uso de componentes

Recommended Posts

Este script assume que o arquivo está no mesmo diretório que o script.

 

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,

 

 

<%@ Language=VBScript %>
<%

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

'Edite essas variáveis para combinar com suas especificações
ftp_address          = "ftp.server.com"
ftp_username         = "username"
ftp_password         = "password"
ftp_remote_directory = "subdirectorio" 'Deixe em branco se o upload para diretório raiz
ftp_files_to_put     = "file.txt"     ' Você pode usar curingas aqui (por exemplo, *. txt)

On Error Resume Next

Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Construir o nosso ftp comandos de arquivo
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 se precisamos emitir uma 'cd' command
If ftp_remote_directory <> "" Then
   objTextFile.WriteLine "cd " & ftp_remote_directory
End If

objTextFile.WriteLine "prompt"

' Se o arquivo (s) é / são binários (isto. Jpg,. Mdb, etc.) descomente esta linha,
' objTextFile.WriteLine "binary"

' Se houver vários arquivos para colocar, nós precisamos usar o comando mput ', em vez de' put '
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

' Utilize cmd.exe para executar ftp.exe, parsing nosso comando arquivo recém-criado
strCMD = "ftp.exe -s:" & Server.MapPath("test.ftp")
strTempFile = "C:\" & oFileSys.GetTempName( )

' Tubo de saída do 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
' saída de arquivos temporários
strCommandResult = Server.HTMLEncode( oFile.ReadAll )
oFile.Close

'Excluir o temporário & FTP-arquivos de 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.