1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
If UploadByFTP("test.xls" , "www/pro" , "test.xls") Then
Msgbox "Upload du fichier OK"
Else
Msgbox "probleme"
End If
If GetListFTP( "www/pro","listftp.txt") Then
Msgbox "Liste du repertoire OK"
Else
Msgbox "probleme"
End If
If DownloadByFTP("test.xls" , "www/pro" , "test2.xls") Then
Msgbox "Download OK"
Else
Msgbox "probleme"
End If
Function UploadByFTP(ByVal FichierLocal, ByVal Repertoire, ByVal FichierFTP)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f_cmd, f_ret
FTP = "ftp.site.com"
Login = "login"
Pass = "pass"
Set fso = CreateObject("Scripting.FileSystemObject")
FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)
f_cmd.Write "OPEN " & FTP & vbCrLf
f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
f_cmd.Write "cd " & Repertoire & vbCrLf
f_cmd.Write "put " & FichierLocal & " " & FichierFTP & vbCrLf
f_cmd.Write "quit"
f_cmd.Close
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
UploadByFTP = False
Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
while Not f_ret.AtEndOfStream And UploadByFTP = False
iF Left(f_ret.ReadLine,4) = "226 " Then
UploadByFTP = True
End If
Wend
f_ret.close
fso.DeleteFile FichierCommandeFTP
fso.DeleteFile FichierRetourFTP
Set WSHShell = Nothing
Set fso = Nothing
Set f_cmd = Nothing
Set f_ret = Nothing
End Function
Function DownloadByFTP(ByVal FichierFTP, ByVal Repertoire, ByVal FichierLocal)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f_cmd, f_ret
FTP = "ftp.site.com"
Login = "login"
Pass = "pass"
Set fso = CreateObject("Scripting.FileSystemObject")
FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)
f_cmd.Write "OPEN " & FTP & vbCrLf
f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
f_cmd.Write "CD " & Repertoire & vbCrLf
f_cmd.Write "GET " & FichierFTP & " " & FichierLocal & vbCrLf
f_cmd.Write "quit"
f_cmd.Close
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
DownloadByFTP = False
Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
while Not f_ret.AtEndOfStream And DownloadByFTP = False
iF Left(f_ret.ReadLine,4) = "226 " Then
DownloadByFTP = True
End If
Wend
f_ret.close
fso.DeleteFile FichierCommandeFTP
fso.DeleteFile FichierRetourFTP
Set WSHShell = Nothing
Set fso = Nothing
Set f_cmd = Nothing
Set f_ret = Nothing
End Function
Function GetListFTP(ByVal Repertoire,ByVal FichierListe)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f_cmd, f_ret
FTP = "ftp.site.com"
Login = "login"
Pass = "pass"
Set fso = CreateObject("Scripting.FileSystemObject")
FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)
f_cmd.Write "OPEN " & FTP & vbCrLf
f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
f_cmd.Write "cd " & Repertoire & vbCrLf
f_cmd.Write "ls * " & FichierLocal & " " & FichierListe & vbCrLf
f_cmd.Write "quit"
f_cmd.Close
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
GetListFTP = False
Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
while Not f_ret.AtEndOfStream And GetListFTP = False
iF Left(f_ret.ReadLine,4) = "226 " Then
GetListFTP = True
End If
Wend
f_ret.close
fso.DeleteFile FichierCommandeFTP
fso.DeleteFile FichierRetourFTP
Set WSHShell = Nothing
Set fso = Nothing
Set f_cmd = Nothing
Set f_ret = Nothing
End Function |
Partager