Le composant ASPSmartUpload permet de gérer les téléchargements de fichiers ou de données en Upload ou en Download à partir d'un serveur hôte.

Ce composant puissant et gratuit offre une gestion avancée des transferts de fichiers en flux montant ou descendant, avec notamment un contrôle des fichiers en Upload, la restriction sur leurs caractéristiques en Download ou encore a gestion des formulaires en mode mixte.

L'installation du composant ASPSmartUpload s'effectue selon les étapes suivantes :

  • Télécharger les fichiers sur le site de ASPSmart.
  • Décompresser le fichier ZIP.
  • Copier les fichiers DLL dans le répertoire C:\WINNT\SYSTEM32.
  • Exécuter à partir de l'invite MS-DOS
    REGSVR32.EXE C:\WINNT\SYSTEM32\aspSmartUpload.dll .

Le composant ASPSmartUpload comporte un objet principal appelé SmartUpload, lui même comprenant deux collections Files et Form contenant respectivement des objets File et des objets Item.

Objet_SmartUpload
        ¦¦
          = >   Collection_Files
                  ¦¦
                  = >   Objet_File
        ¦¦
         = >   Collection_Form
                  ¦¦
                  = >   Objet_Item

L'objet SmartUpload peut être créé directement à partir d'un script ASP.

Set Objet_Upload = Server.CreateObject("AspSmartUpload.SmartUpload")

Ensuite comme tous les objets intrinsèques à ASP, l'utilisation de l'objet SmartUpload s'effectue come suit :

Objet_Upload.Collections | Propriété | Méthode
Les Collections
Collection
Description
Files
représente une collection d'objets File.
Form
représente une collection d'objets Item (champs du formulaire).
Les Propriétés
Propriété
Description
TotalMaxFileSize
retourne la taille maximale totale autorisée pour l'upload de fichiers.
MaxFileSize
retourne la taille maximale autorisée par fichier lors de l'upload.
AllowedFilesList
contient la liste des extensions des fichiers autorisées pour l'upload.
DeniedFilesList
contient la liste des extensions des fichiers refusées lors de l'upload.
DenyPhysicalPath
empêche l'enregistrement de fichiers dans des répertoires autres que les répertoires virtuels.
ContentDisposition
modifie le content-disposition.
DownloadBlockSize
retourne la taille des blocs d'une source de données lues.
TotalBytes
retourne la taille totale en octets des données transmises.
BinaryData
retourne l'octet correspondant à l'indice du tableau contenant les données transmises.
Les Méthodes
Méthode
Description
UpLoad
exécute la transfert en upload du formulaire.
Save
sauvegarde tous les fichiers transmis.
DownloadFile
exécute le transfert en download d'un fichier.
DownloadField
télécharge un fichier à partir d'une base de données.
FieldToFile
crée un nouveau fichier contenant les données d'un champ d'une table d'une base de données.
UploadInFile
sauvegarde le formulaire complet dans un fichier.

La collection Files contient l'ensemble des objets File représentant des fichiers spécifiés dans les éléments HTML de transfert de fichier.

Coll_Files.Collection | Propriété | Méthode
Les Collections
Collection
Description
File
représente l'objet File.
Les Propriétés
Propriété
Description
Count
retourne le nombre d'objet File.
TotalBytes
retourne la taille en octets de la collection Files.
Les Méthodes
Méthode
Description
Item(ID)
retourne l'objet File correspondant à l'identifiant spécifié en paramètre.

L'objet File correspond au fichier désigné par la valeur d'un champ de l'élément HTML de transfert de fichier.

Objet_File.Propriété | Méthode
Les Propriétés
Propriété
Description
Name
retourne le nom du champ du formulaire.
FileName
retourne le nom du fichier saisie par l'utilisateur.
FileExt
retourne l'extension du fichier saisie par l'utilisateur.
FilePathName
retourne le chemin du fichier saisie par l'utilisateur.
ContentType
retourne le Content-Type du fichier saisie par l'utilisateur.
ContentDisp
retourne le Content-Disposition du formulaire
Size
retourne la taille du fichier.
ContentString
retourne le contenu du fichier dans une chaîne de caractères.
TypeMIME
retourne le type MIME du fichier saisie par l'utilisateur.
SubTypeMIME
retourne le sous-type MIME du fichier saisie par l'utilisateur.
IsMissing
retourne True si l'utilisateur n'a pas saisi de fichier.
BinaryData
retourne l'octet correspondant à l'indice du tableau contenant les données transmises.
Les Méthodes
Méthode
Description
SaveAs
sauvegarde le fichier sur le disque.
FileToField
sauvegarde le contenu d'un fichier dans le champ d'une table d'une base de données.

La collection Form représente le formulaire et contient les objets Item.

Objet_Fom.Collection | Propriété | Méthode
Les Collections
Collection
Description
Item
représente l'objet Item.
Les Propriétés
Propriété
Description
Count
retourne le nombre d'item de la collection.
Les Méthodes
Méthode
Description
Item(ID)
retourne l'objet Item correspondant à l'identifiant passé en paramètre.

L'objet Item correspond aux champs de transfert de fichiers compris dans le formulaire.

Objet_Item.Propriétés
Les Propriétés
Propriété
Description
Count
retourne le nombre de valeurs pour cet item.
Name
retourne le nom du champ du formulaire.
Values
retourne les valeurs du champ du formulaire.
Exemple [voir]
<!-- Formulaire de saisie -->
<html>
  <body>
    <form 
              method="POST"
              action="traitement.asp"
              enctype="multipart/form-data">
      <input type="file" name="fichier1" size="50"><br>
      <input type="file" name="fichier2" size="50"><br>
      <input type="file" name="fichier3" size="50"><br>
      <input type="file" name="fichier4" size="50"><br>
      <input type="submit" value="Upload">
    </form>
  </body>
</html>
<!-- Fichier de traitement traitement.asp -->
<html>
  <body>
    <%
      Dim Objet_SmartUpload
      Dim Fichier
      Dim i
      i = 0
      Set Objet_SmartUpload = _
              Server.CreateObject("aspSmartUpload.SmartUpload")
      Objet_SmartUpload.Upload
      For each Fichier In Objet_SmartUpload.Files
        If not Fichier.IsMissing Then
          Fichier.SaveAs("/aspSmartUpload/Upload/" & Fichier.FileName)
          Fichier.SaveAs("c:\temp\" & Fichier.FileName)
          Response.Write "" _
              & "<table>" _
                & "<tr><th>Nom complet</th><td>" _
                  & Fichier.Name & "</td></tr>" _
                & "<tr><th>Taille</th><td>" _
                  & Fichier.Size & "</td></tr>" _
                & "<tr><th>Nom</th><td>" _
                  & Fichier.FileName & "</td></tr>" _
                & "<tr><th>Extension</th><td>" _
                  & Fichier.FileExt & "</td></tr>" _
                & "<tr><th>Chemin</th><td>" _
                  & Fichier.FilePathName & "</td></tr>" _
                & "<tr><th>Type de contenu</th><td>" _
                  & Fichier.ContentType & "</td></tr>" _
                & "<tr><th>Disposition de contenu</th><td>" _
                  & Fichier.ContentDisp & "</td></tr>" _
                & "<tr><th>Type MIME</th><td>" _
                  & Fichier.TypeMIME & "</td></tr>" _
                & "<tr><th>Sous-Type MIME</th><td>" _
                  & Fichier.SubTypeMIME & "</td></tr>" _
              & "</table>"
          i = i + 1
        End If
      Next
      Response.Write "<p>" & Objet_SmartUpload.Files.Count _
                            & " fichiers pouvaient être uploadés.</p>"
      Response.Write "<p>" & i & " fichiers uploadés.</p>"
    %>
  </body>
</html>