File2ftpupload

Description

Je vous propose un nouvel élément à utiliser : File2FTPUpload
c'est le fruit d'une question posée dans le forum.
Il permet d'uploader un fichier dans votre serveur FTP avec affichage du résultat de transfert.

Source / Exemple :


<html> 
<head> 
<HTA:APPLICATION 
    ICON="explorer.exe"
    APPLICATIONNAME = "File2FTP Uploader © Hackoo © 2012" 
    BORDER="dialog"
    BORDERSTYLE="complex"
    CONTEXTMENU="no"
    SYSMENU="yes"
    MAXIMIZEBUTTON="no"
    SCROLL="no" 
>
<title>File2FTP Uploader © Hackoo © 2012</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<style>
    body{
     filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr='#8ff2ff', EndColorStr='#008785');
    }
    Input,label,.btn{
        font-weight: bold;
        background-color:lightred;
    }
</style>
<script language="VBScript">
    Sub window_onload()
       CenterWindow 420, 615
    End Sub
 
    Sub CenterWindow(x,y)
        window.resizeTo x, y
        iLeft = window.screen.availWidth/2 - x/2
        itop = window.screen.availHeight/2 - y/2
        window.moveTo ileft, itop
    End Sub
 
Sub Upload() 
If file1.Value = "" Then 'Assurer que le fichier a uplodé n'est pas vide sinon on déclenche un message d'avertissement
MsgBox "ATTENTION ! ! ! ! ! !" & vbcr & "Le fichier à uploder n'existe pas ? " & vbcr & "Veuillez SVP choisir un fichier pour l'upload !",48,"Le Fichier à uploder n'existe pas ? "
End If
FTPUpload FTPServer.Value,FTPLOGIN.Value,Password.Value,file1.Value,DossierDistant.Value,sResults
End Sub
 
'-------------------------------FTPUpload---------------------------------------------
Function FTPUpload(sSite, sUsername, sPassword, sLocalFile, sRemotePath ,sResults)
  Const OpenAsDefault = -2
  Const FailIfNotExist = 0
  Const ForReading = 1
  Const ForWriting = 2
  Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
  Set oFTPScriptShell = CreateObject("WScript.Shell")
 
  sRemotePath = Trim(sRemotePath)
  sLocalFile = Trim(sLocalFile)
 
  'Ici, nous allons vérifier si le chemin, contient des espaces. 
  'puis 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 = qq(sRemotePath) 
    End If
  End If
 
  If InStr(sLocalFile, " ") > 0 Then
    If Left(sLocalFile, 1) <> """" And Right(sLocalFile, 1) <> """" Then
      sLocalFile = qq(sLocalFile) 
    End If
  End If
 
 'Assurer que la variable sRemotePath , Si elle est vide, on va la passer par un "\"
  If Len(sRemotePath) = 0 Then
    sRemotePath = "\"
  End If
 
  'construire un fichier de configuration pour passer les commandes ftp
  sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
  sFTPScript = sFTPScript & sPassword & vbCRLF
  sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
  sFTPScript = sFTPScript & "binary" & vbCRLF
  sFTPScript = sFTPScript & "prompt n" & vbCRLF
  sFTPScript = sFTPScript & "put " & sLocalFile & vbCRLF
  sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF
 
 
  sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
  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 -i -n -s:" & sFTPTempFile & " " & sSite & _
  " > " & sFTPResults,0,True
 
 
  'Lire le Resultat du Transfert
  Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
  FailIfNotExist, OpenAsDefault)
  sResults = fFTPResults.ReadAll
  txtBody.value = sResults
  fFTPResults.Close
 
 
If InStr(sResults, "226") > 0 Then
 FTPUpload = True    
Set objRegex = new RegExp
objRegex.Pattern = "226(.\w+.*)"
objRegex.Global = True
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(sResults)
For Each Match in Matches   
Result=objRegex.Replace(Match.Value,"$1")
    MsgBox " Le Fichier " &qq(file1.Value)& " a été uploadé avec succés !"& vbcr & Result,64,"Résultat du Transfert d'Upload !"
Next
  ElseIf InStr(sResults, "File Not Found") > 0 Then
 MsgBox "Erreur : Fichier Non Trouvé ?",16,"Erreur : Fichier Non Trouvé ?"
    FTPUpload = "Erreur : Fichier Non Trouvé ?"
  ElseIf InStr(sResults, "Login authentication failed") > 0 Then
    MsgBox "Login authentication a echoué !",16,"Login authentication failed !"
    FTPUpload = "Error: Login Failed."
  Else
    FTPUpload = "Error: Unknown."
    MsgBox "Erreur: Inconnu ?",16,"Erreur: Inconnu ?"
  End If

 oFTPScriptFSO.DeleteFile(sFTPTempFile)
 oFTPScriptFSO.DeleteFile (sFTPResults)
  Set oFTPScriptFSO = Nothing
  Set oFTPScriptShell = Nothing
End Function
 
Function qq(strIn) 'c'est une fonction très partique qui sert à ajouter "les doubles quotes dans une variable" 
    qq = Chr(34) & strIn & Chr(34)
End Function
</script>
</head> 
 
<body>
<label for="FTPSERVER" style="width: 120; textalign: right;">FTP SERVER:</label><input type="text" id="FTPSERVER" name="FTPSERVER" value="ftp.membres.lycos.fr"><br /> 
    <label for="FTP LOGIN" style="width: 120; textalign: right;">FTP LOGIN:</label><input type="text" id="FTPLOGIN" name="FTPLOGIN" value="USER Identifiant"><br /> 
    <label for="FTP Password" style="width: 120; textalign: right;">FTP Password:</label><input type="password" id="password" name="password" value="Mot de Passe"><br />
    <label for="Dossier Distant" style="width: 120; textalign: right;">Dossier Distant:</label><input type="text" id="DossierDistant" name="DossierDistant" value="/"><br />
    <br>
    <label STYLE="filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr='#a1ff97', EndColorStr='#009f00')" for="file">Fichier à uploader</label><input type="file" STYLE="filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr='#a1ff97', EndColorStr='#009f00')" name="file1" id="file1" /><br><br>
    <center><label>Message Réponse du Serveur FTP :</label><br></center>
    <textarea STYLE="filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr='#a1ff97', EndColorStr='#009f00')" id="txtBody" rows="20" cols="45"></textarea><br><br>
    <center>
    <input STYLE="filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr='#a1ff97', EndColorStr='#009f00')" class="btn" type="Submit" value="Envoyer Via FTP" onClick="Upload()">
</body> 
</html>

Conclusion :


Vos remarques et vos commentaires sont les bienvenues !

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.