Accueil > > > [VBS] FOLDER2FTPUPLOAD
[VBS] FOLDER2FTPUPLOAD
Information sur la source
Description
C'est un Vbscript pour uploader un dossier avec tout son contenu (Tout les fichiers) dans votre serveur FTP.C'est un genre d'upload Multiple.
Le Script est de simple utilisation , il vous suffit juste de l'éditer et de modifier les 3 paramètres:
1- Le Nom de votre Serveur FTP
2- Le Nom d’utilisateur (Login)
3- Le Mot de passe
Source
- Dim FTPServer,Login,Password,NomDossier,CheminDossier
- Copyright = "FolderFTPUpload © Hackoo © 2012"
-
- '**********-Trois Paramètres à modifier-*************
- FTPServer = "ftp.server.com"
- Login = "MyLogin"
- Password= "MyPassword"
- '****************************************************
-
- Call Parcourir_Dossier()
-
- sub Parcourir_Dossier()
- Set objShell = CreateObject("Shell.Application")
- Set objFolder = objShell.BrowseForFolder(0, "Veuillez choisir un dossier pour uploader son contenu"&vbcr&vbTab&Copyright, 1, "c:\Programs")
- If objFolder Is Nothing Then
- Wscript.Quit
- End If
- NomDossier = objFolder.title
- CheminDossier = objFolder.self.path
- Question = MsgBox("Vous avez Choisi le Dossier " &qq(NomDossier)& " qui se localise dans ce chemin :" &Vbcr& qq(CheminDossier)&vbcr&VbTab&VbTab&VbTab&" Continuez ?",vbYesNo + vbQuestion,"Le Dossier Choisi est "&qq(NomDossier)&" "&Copyright)
- If Question = VbYes Then
- FolderFTPUpload FTPServer,Login,Password,CheminDossier,NomDossier
- else
- wscript.Quit
- End If
- end sub
-
- Function FolderFTPUpload(sSite, sUsername, sPassword, sLocalFolder, sRemotePath)
- Const OpenAsDefault = -2
- Const FailIfNotExist = 0
- Const ForReading = 1
- Const ForWriting = 2
-
- Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
- Set oFTPScriptShell = CreateObject("WScript.Shell")
- Set ws = CreateObject("wscript.Shell")
- sRemotePath = Trim(sRemotePath)
- sLocalFolder = Trim(sLocalFolder)
-
- 'Vérifier si le chemin, contient des espaces.
- 'si Oui,alors nous avons besoin d'ajouter des guillemets pour s'assurer qu'il passe correctement.
-
- If InStr(sRemotePath, " ") > 0 Then
- If Left(sRemotePath, 1) <> """" And Right(sRemotePath, 1) <> """" Then
- sRemotePath = """"&sRemotePath&""""
- End If
- End If
-
- If InStr(sLocalFolder, " ") > 0 Then
- If Left(sLocalFolder, 1) <> """" And Right(sLocalFolder, 1) <> """" Then
- sLocalFolder = """"&sLocalFolder&""""
- End If
- End If
-
- sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
- Call ContenuDossier(CheminDossier)
-
- Set f = oFTPScriptFSO.OpenTextFile(sFTPTemp &"\ContenuDossier.txt", ForReading, OpenAsDefault)
- LireTout = f.ReadAll
- Fichier = split(LireTout,VbcrLF)
- f.Close
- 'construire un fichier de configuration pour passer les commandes ftp
- sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
- sFTPScript = sFTPScript & sPassword & vbCRLF
- sFTPScript = sFTPScript & "mkdir " & sRemotePath & vbCRLF
- sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
- sFTPScript = sFTPScript & "binary" & vbCRLF
- sFTPScript = sFTPScript & "prompt n" & vbCRLF
- For i=LBound(Fichier) to UBound(Fichier)-1
- sFTPScript = sFTPScript & "put "& Fichier(i) & vbCRLF
- Next
- sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF
-
- sFTPTempFile = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
- sFTPResults = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
-
- 'Ecrire les commandes ftp à passer dans un fichier temporaire.
- Set fFTPScript = oFTPScriptFSO.CreateTextFile(sFTPTempFile, True)
- fFTPScript.WriteLine(sFTPScript)
- fFTPScript.Close
- Set fFTPScript = Nothing
-
- oFTPScriptShell.Run "%comspec% /c FTP -n -s:" & sFTPTempFile & " " & sSite & _
- " > " & sFTPResults,0, TRUE
-
- 'Vérifier le résultat du Transfert de l'upload
- Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
- FailIfNotExist, OpenAsDefault)
- sResults = fFTPResults.ReadAll
- fFTPResults.Close
-
- oFTPScriptFSO.DeleteFile(sFTPTempFile)
- 'oFTPScriptFSO.DeleteFile (sFTPResults)
-
- If InStr(sResults, "226") > 0 Then
- FolderFTPUpload = True
- MsgBox "Tout les fichiers contenu dans le Dossier : " &sLocalFolder& vbcr & vbcr & " ont été uploadés avec succés !"&vbcr& LireTout,64,"Résultat du Transfert d'Upload "&Copyright
-
- ElseIf InStr(sResults, "File not found") > 0 Then
- FolderFTPUpload = "Error: File Not Found"
- MsgBox "Erreur : Fichier Non Trouvé ?",16,"Erreur : Fichier Non Trouvé ? "&Copyright
- ElseIf InStr(sResults, "Login authentication failed") > 0 Then
- FolderFTPUpload = "Error: Login Failed."
- MsgBox "Login authentication a echoué !",16,"Login authentication failed ! "&Copyright
- Else
- FolderFTPUpload = "Error: Unknown."
- MsgBox "Erreur: Inconnu ?",16,"Erreur: Inconnu ? "&Copyright
- End If
-
- Set oFTPScriptFSO = Nothing
- Set oFTPScriptShell = Nothing
- End Function
-
- sub ContenuDossier(sLocalFolder)
- Set ws = CreateObject("wscript.Shell")
- Set FSO = CreateObject("Scripting.FileSystemObject")
- sFTPTemp = ws.ExpandEnvironmentStrings("%TEMP%")
- if fso.FileExists(sFTPTemp &"\ContenuDossier.txt") Then
- fso.DeleteFile sFTPTemp &"\ContenuDossier.txt"
- End if
- Command ="cmd /c for %I in ("&sLocalFolder&"\*.*) do (echo ""%I"") >> "& sFTPTemp &"\ContenuDossier.txt"""
- Resultat = ws.run(command,0,True)
- End sub
-
- 'c'est une fonction très pratique qui sert à ajouter "les doubles quotes dans une variable"
- Function qq(strIn)
- qq = Chr(34) & strIn & Chr(34)
- End Function
Dim FTPServer,Login,Password,NomDossier,CheminDossier
Copyright = "FolderFTPUpload © Hackoo © 2012"
'**********-Trois Paramètres à modifier-*************
FTPServer = "ftp.server.com"
Login = "MyLogin"
Password= "MyPassword"
'****************************************************
Call Parcourir_Dossier()
sub Parcourir_Dossier()
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Veuillez choisir un dossier pour uploader son contenu"&vbcr&vbTab&Copyright, 1, "c:\Programs")
If objFolder Is Nothing Then
Wscript.Quit
End If
NomDossier = objFolder.title
CheminDossier = objFolder.self.path
Question = MsgBox("Vous avez Choisi le Dossier " &qq(NomDossier)& " qui se localise dans ce chemin :" &Vbcr& qq(CheminDossier)&vbcr&VbTab&VbTab&VbTab&" Continuez ?",vbYesNo + vbQuestion,"Le Dossier Choisi est "&qq(NomDossier)&" "&Copyright)
If Question = VbYes Then
FolderFTPUpload FTPServer,Login,Password,CheminDossier,NomDossier
else
wscript.Quit
End If
end sub
Function FolderFTPUpload(sSite, sUsername, sPassword, sLocalFolder, sRemotePath)
Const OpenAsDefault = -2
Const FailIfNotExist = 0
Const ForReading = 1
Const ForWriting = 2
Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
Set oFTPScriptShell = CreateObject("WScript.Shell")
Set ws = CreateObject("wscript.Shell")
sRemotePath = Trim(sRemotePath)
sLocalFolder = Trim(sLocalFolder)
'Vérifier si le chemin, contient des espaces.
'si Oui,alors nous avons besoin d'ajouter des guillemets pour s'assurer qu'il passe correctement.
If InStr(sRemotePath, " ") > 0 Then
If Left(sRemotePath, 1) <> """" And Right(sRemotePath, 1) <> """" Then
sRemotePath = """"&sRemotePath&""""
End If
End If
If InStr(sLocalFolder, " ") > 0 Then
If Left(sLocalFolder, 1) <> """" And Right(sLocalFolder, 1) <> """" Then
sLocalFolder = """"&sLocalFolder&""""
End If
End If
sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
Call ContenuDossier(CheminDossier)
Set f = oFTPScriptFSO.OpenTextFile(sFTPTemp &"\ContenuDossier.txt", ForReading, OpenAsDefault)
LireTout = f.ReadAll
Fichier = split(LireTout,VbcrLF)
f.Close
'construire un fichier de configuration pour passer les commandes ftp
sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
sFTPScript = sFTPScript & sPassword & vbCRLF
sFTPScript = sFTPScript & "mkdir " & sRemotePath & vbCRLF
sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
sFTPScript = sFTPScript & "binary" & vbCRLF
sFTPScript = sFTPScript & "prompt n" & vbCRLF
For i=LBound(Fichier) to UBound(Fichier)-1
sFTPScript = sFTPScript & "put "& Fichier(i) & vbCRLF
Next
sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF
sFTPTempFile = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
sFTPResults = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
'Ecrire les commandes ftp à passer dans un fichier temporaire.
Set fFTPScript = oFTPScriptFSO.CreateTextFile(sFTPTempFile, True)
fFTPScript.WriteLine(sFTPScript)
fFTPScript.Close
Set fFTPScript = Nothing
oFTPScriptShell.Run "%comspec% /c FTP -n -s:" & sFTPTempFile & " " & sSite & _
" > " & sFTPResults,0, TRUE
'Vérifier le résultat du Transfert de l'upload
Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
FailIfNotExist, OpenAsDefault)
sResults = fFTPResults.ReadAll
fFTPResults.Close
oFTPScriptFSO.DeleteFile(sFTPTempFile)
'oFTPScriptFSO.DeleteFile (sFTPResults)
If InStr(sResults, "226") > 0 Then
FolderFTPUpload = True
MsgBox "Tout les fichiers contenu dans le Dossier : " &sLocalFolder& vbcr & vbcr & " ont été uploadés avec succés !"&vbcr& LireTout,64,"Résultat du Transfert d'Upload "&Copyright
ElseIf InStr(sResults, "File not found") > 0 Then
FolderFTPUpload = "Error: File Not Found"
MsgBox "Erreur : Fichier Non Trouvé ?",16,"Erreur : Fichier Non Trouvé ? "&Copyright
ElseIf InStr(sResults, "Login authentication failed") > 0 Then
FolderFTPUpload = "Error: Login Failed."
MsgBox "Login authentication a echoué !",16,"Login authentication failed ! "&Copyright
Else
FolderFTPUpload = "Error: Unknown."
MsgBox "Erreur: Inconnu ?",16,"Erreur: Inconnu ? "&Copyright
End If
Set oFTPScriptFSO = Nothing
Set oFTPScriptShell = Nothing
End Function
sub ContenuDossier(sLocalFolder)
Set ws = CreateObject("wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
sFTPTemp = ws.ExpandEnvironmentStrings("%TEMP%")
if fso.FileExists(sFTPTemp &"\ContenuDossier.txt") Then
fso.DeleteFile sFTPTemp &"\ContenuDossier.txt"
End if
Command ="cmd /c for %I in ("&sLocalFolder&"\*.*) do (echo ""%I"") >> "& sFTPTemp &"\ContenuDossier.txt"""
Resultat = ws.run(command,0,True)
End sub
'c'est une fonction très pratique qui sert à ajouter "les doubles quotes dans une variable"
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
Conclusion
Vos commentaires et vos remarques sont les Bienvenues !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Transfere un dossier en ftp avec vb [ par AlfaDemeter ]
ah j'ai beau essayé de comprendre le fichier source vb pour suprimer, telecherger, uploader, je ne comprend pas. j'aimerais avoir juste un truc s
List Ftp Dossier/Fichier ?? [ par deltaxxx ]
Bonjour, J'ai fait un petit client ftp en vb6 utilisant winsock.dll je croyait qu'il était au point mais j'ai eu la preuve du contraire lors du l
Inet upload de fichier au complet [ par retsam ]
Jaimerais que Inet upload un fichier au complet sur mon serveur FTP et non à 0 Ko.S.V.P jai besoin d'aide.Mon code:With Inet1 .U
Inet plante avec des fichiers tros gros [ par Jeskor ]
Je réalise actuelement une application necessitant une liaison ftp permettant l'upload et le download..Voici 2 codes :Public Sub Upload(in_Source, in_
Upload fichier Htm [ par jeje11991 ]
Bonsoir,J'ai un code qui génère un fichier .htm et j'aimerais uploader ce fichier, le problème c'est que si je le fais par Ftp le mot de passe de mon
Upload de fichier sur un ftp [ par Razordj ]
J'aimerais créer un "upload" automatique sur Visual basic express 2008 qui uploaderais sur un serveur Ftp.Il uploaderais tout les fichiers et tout les
Ouvrir un fichier via FTP ? [ par renocmoa ]
Bonjour, je voudrais ouvrir un fichier ou un dossier distant accesible par FTP avec un truc du genre process.start... Mais avec login et MdP dans le
Ecrire dans un fichier texte existant quand mon programme ce lance [ par Triboutmatthieu ]
Bonjour, j'ai crée un programme et ce programme se lance dés que Windows s'ouvre.Je voudrais savoir si mon programme pourrait introduire dans un fichi
recup d'un fichier sur ftp [ par rex591 ]
une petite question sur cette source (trouvée sur ce site)http://www.vbfrance.com/codes/OUVERTURE-COMMON-DIALOG-TELECHARGEMENT_3915.aspxje
Action lors d'un dépot de fichier dans un dossier [ par gruzlor ]
Salut,Je travaille dans une société qui stocke moults fichiers sur serveurs. Mon problème est que les fichiers sont toujours mal classés et que leurs
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Forum
RE : CALENDRIERRE : CALENDRIER par acive
Cliquez pour lire la suite par acive CALENDRIERCALENDRIER par garxonlabel
Cliquez pour lire la suite par garxonlabel
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|