Web Development Knowledge Base
| |
Sections :
RSS Feed You too, please publish your useful code snippets in any programming language : write an article ! Plateforme d'envoi de gros fichiers en ligne Dépannage site web Blog infogérance Hébergement e-mail |
Olivier Ligny - - 11/03/2008 - vue 11271 fois
Transférer des fichiers par FTP avec JavaScriptVoici un bout de code que j'avais du écrire il y a fort longtemps ... Le but est de se connecter à un serveur FTP pour y récupérer certains fichiers et les télécharger sur le bureau, ou ailleurs, afin de faire une mise à jour de fichiers locaux par exemple. Le serveur peut nécessiter une authentification, ou pas (accès anonyme). Ce script ne peut fonctionner qu'en environnement "trusté", c'est à dire si vous exécutez le script dans un HTA ou en local avec les autorisations nécessaires.
<script> function GetEnvVar(name) { var objShell=new ActiveXObject("WScript.Shell") var env=objShell.Environment; for(e=new Enumerator(env); !e.atEnd(); e.moveNext()) if(e.item(e).indexOf('TEMP')==0) return e.item(e).substring(5,100); } // paramètres var ftp_host = "127.0.0.1"; var ftp_user = "user"; var ftp_pass = "pass"; var files = new Array("file.txt", "file.gif"); var remote_path = "/"; var local_path = "c:\windows\bureau"; // fichiers temporaires var UpdBatPath = "C:\WINDOWS\~UpdBat.bat"; var FTPComsPath = "C:\WINDOWS\~FTPComs.txt"; // création de l'objet FileSystemObject var fso = new ActiveXObject("Scripting.FileSystemObject"); // on écrit le fichier batch fso.CreateTextFile(UpdBatPath); var UpdBat = fso.OpenTextFile(UpdBatPath, 2); UpdBat.WriteLine("@echo off"); UpdBat.WriteLine("prompt $H"); UpdBat.WriteLine("cls"); UpdBat.WriteLine("echo ================================================================================"); UpdBat.WriteLine("echo [ MISE A JOUR EN COURS ]"); UpdBat.WriteLine(""); UpdBat.WriteLine("echo Veuillez patienter"); UpdBat.WriteLine("echo Connexion au serveur et telechargement des mises a jour ..."); UpdBat.WriteLine(""); UpdBat.WriteLine("echo ================================================================================"); UpdBat.WriteLine(""); UpdBat.WriteLine("ftp -s:"+FTPComsPath); // (la commande qui lancera le script FTP écrit dans l'autre fichier) UpdBat.WriteLine(""); UpdBat.WriteLine("echo ================================================================================"); UpdBat.WriteLine("echo [ MISE A JOUR TERMINEE ]"); UpdBat.WriteLine("echo ================================================================================"); UpdBat.WriteLine(""); UpdBat.Close(); // on écrit le script de commande FTP fso.CreateTextFile(FTPComsPath); var FTPComs = fso.OpenTextFile(FTPComsPath, 2); FTPComs.WriteLine("open "+ftp_host); FTPComs.WriteLine(ftp_user); FTPComs.WriteLine(ftp_pass); FTPComs.WriteLine("lcd "+local_path); FTPComs.WriteLine("hash"); FTPComs.WriteLine("binary"); for(fo=0; fo<files.length; fo++) FTPComs.WriteLine("get "+remote_path+files[fo]); FTPComs.WriteLine("bye"); FTPComs.Close(); // on exécute le tout new ActiveXObject("WScript.Shell").Run("%comspec% /c "+UpdBatPath, 1, true); // suppression des fichiers temporaires fso.GetFile(FTPComsPath).Delete(); fso.GetFile(UpdBatPath).Delete(); </script> |
Nos partenaires : iPhone 8 Cases & Protection |