Upload de fichier dans une base de données


Retour à la page développeur

Mots-clefs : BLOB, Access, ASP, composant, upload.

Fonctionnement

Un objet COM (ManqArquivo.Upload) est chargé de sauver le fichier envoyé par l'utilisateur sur le serveur. L'objet "PB.BLOBUploader" récupère le fichier et le sauve dans un champ "OBJECT OLE" de la base de données.

Sont paramétrables :
- la connection string pour la base de données (testé avec ACCESS 2002 e ADO 2.7) ainsi que les champs user/password
- le nom de la table destination du fichier

Installation :
- copier PB.DLL dans le répertoire Inetpub\Scripts et exécuter : regsvr32 PB.DLL pour enregistrer l'objet.
- La table de la base de données qui reçoit l'objet doit avoir la structure suivante :
ID : clé primaire, numérique. L'ID peut être généré automatiquement par Blobuploader.
BLOB : champ de type OBJECT OLE. C'est lui qui contiendra le contenu du fichier uploadé.
DATE : date / heure de l'upload. Rempli automatiquement par Blobuploader.
FILENAME : champ texte, nom du fichier uploadé.
SIZE : entier long, dimension du fichier uploadé (rempli automatiquement).

Exemple d'utilisation (simple sauvegarde dans une base de données)

Set objBlob = Server.CreateObject("PB.BLOBUploader")
' Configuration de l'accès à la base de données
objBlob.ConnectionString="Data Source=" & DSN_NAME
objBlob.user=USER: objBlob.password=PSW
objBlob.blobTable="BLOBS"
' Sauve le fichier dans la base de données. Cette fonction retourne le nombre d'octets sauvegardés (-1 si erreur)
Call objBlob.UploadFile(-1,"Toto.txt")
' Destruction de l'objet
Set objBlob = Nothing

Exemple d'utilisation (UPLOAD de fichier+sauvegarde dans la base de données)

Dim objBlob, theForm, fileName
Const DATA_SOURCE="mydatabase"
Const USER="user"
Const PASSWORD="pass"

Set theForm = Server.CreateObject("MandArquivo.Upload")
theForm.RequererArquivo UPLOADED_FILES_PHYSICAL_PATH
fileName = theForm.Nome
Set objBlob = Server.CreateObject("PB.BLOBUploader")
objBlob.ConnectionString="Data Source=" & DSN_NAME
objBlob.user=USER: objBlob.password=PSW
objBlob.blobTable="BLOBS"
Call objBlob.UploadFile(-1,UPLOADED_FILES_PHYSICAL_PATH & "\" & fileName)
Set objBlob = Nothing

Code source (Visual Basic 6)

Télécharger le projet Visual Basic (source + DLL) BLOB Uploader
Télécharger l'objet MandArquivo ici

Retour à la page développeur