Upload de fichier via FTP à partir d'Excel VBA
Besoin de télécharger un fichier (file.txt) à un serveur (ftp.server.com) à partir d'Excel VBA.
(n'a pas à être nécessairement FTP, juste besoin d'être en mesure de mettre le fichier et le récupérer, et j'ai un serveur sur GoDaddy hébergement mutualisé),
Ce que j'ai essayé était à l'exécution de ce script:
ftp -s:script.txt
script.txt:
open ftp.server.com
USER
PASS
lcd c:\
put file.txt
disconnect
bye
L'erreur que j'obtiens est:
425 impossible d'ouvrir la connexion de données à port 53637: Connection timed out
Google m'indique que je dois aller en mode passif, mais la ligne de commande ftp.exe
client ne permet pas que.
Quelqu'un sait de toute libre (open source) de ligne de commande client FTP qui permet le mode passif?
Dois-je avoir une alternative plus facile de faire du FTP?
Est-il une meilleure façon de télécharger un fichier via VBA (sans la ligne de commande de contournement)?
Je suis en train de réfléchir à l'aide de DROPBOX (mais je n'ai vraiment pas envie d'installer ce programme sur tous les postes de travail qui devront le programme).
OriginalL'auteur Diego Castro | 2011-10-12
Vous devez vous connecter pour publier un commentaire.
http://winscp.net est gratuit, de scripts, prend en charge le mode passif et il est vraiment EXCELLENT.
est le meilleur" est très subjective. Autant que je sache, FZ n'est pas scriptable qui le rend inutilisable pour de nombreuses situations. C'est un fait 🙂
guy" - comme vous dites - probablement compris la réponse mieux que vous. Ma suggestion répondait exactement à ses besoins.
J'ai posté un réponse avec un exemple comment utiliser WinSCP.
Je suis d'accord avec toi camarade, cette réponse ne doit pas avoir été accepté
OriginalL'auteur Patrick Honorez
Si vous ne pouvez pas utiliser le Windows
ftp.exe
(en particulier parce que il ne prend pas en charge le mode passif et TLS/SSL), vous pouvez utiliser une autre ligne de commande client FTP.Par exemple, pour télécharger un fichier à l'aide de WinSCP script, utilisation:
Pour faciliter la lecture, le ci-dessus s'exécute ces WinSCP commandes:
Vous pouvez mettre les commandes dans un fichier de script et exécutez le script avec
/script=
paramètre de ligne de commande, de même pour leftp -s:
, au lieu de la/command
.Voir le guide de La conversion de Windows script FTP pour WinSCP script.
Vous pouvez même avoir WinSCP GUI générer le script de chargement FTP pour vous.
WinSCP par défaut pour le mode passif.
Vous pouvez également utiliser FTPS (SSL/TLS):
Alternativement, vous pouvez utiliser WinSCP .NET de l'assemblée via COM à partir du code VBA.
(Je suis l'auteur de WinSCP)
OriginalL'auteur Martin Prikryl
Diego, j'ai utilisé le code ci-dessous avec succès depuis des années. Le code obtient des fichiers à partir de l'hôte, mais je suis sûr qu'il peut être modifié pour mettre des fichiers il y a la place.
thnx @Jeremy, mais j'ai vraiment besoin de mode passif
pas de réponse, jusqu'à ce qu'il répond à la question
OriginalL'auteur Jeremy
Le script ci-dessus est grande j'ai utilisé les commandes suivantes pour télécharger des fichiers, enregistrer la sortie dans un fichier qui est utile lors du débogage aussi c'est une idée fausse commune que windows ftp ne peut pas faire le mode passif de la commande pour aller passive est "citation pasv" (j'ai ajouté à cela le script
ftp.exe
ne prend pas en charge le mode passif. À l'aide dequote pasv
ne peut pas aider.OriginalL'auteur Chait E