Accueil > > > UPLOAD D'IMAGES VIA ADODB.STREAM ET SQL SERVER
UPLOAD D'IMAGES VIA ADODB.STREAM ET SQL SERVER
Information sur la source
Description
Ce code permet comme son nom l'indique d'uploader sur un serveur distant des images via SQL Server et ADODB.Stream Votre base SQL Server est installée sur un serveur distant. Pourquoi SQL Server ? et bien la réponse est simple, il s'agit de pouvoir mettre en local une chaine de connection à une base de données distantes ( étant donné que je ne pense pas que l'on puisse le faire avec ACCESS ... ) Pour se faire votre base de données doit contenir une table avec un champ image. Vous avez un fichier en local pour lire les fichiers sur le disque dur, un autre fichier sur serveur distant pour réceptionner les fichiers envoyés
Source
- 'Pour commencer une page local pour mon exemple je choisi envoi.asp
- 'Ne pas oublier d'importer la dll permettant d'utiliser ADODB.Stream
-
- <!--METADATA TYPE="typelib"
- UUID="00000205-0000-0010-8000-00AA006D2EA4"
- NAME="ADODB Type Library"
- -->
-
- 'Ensuite la fameuse connection avec la base SQL Server
- Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base"
-
- 'On selectionne ensuite la table sensée contenir les images
- Set rs = server.CreateObject("ADODB.Recordset")
- SQL="SELECT * FROM images"
- RS.open SQL, conn, 3, 3
-
- 'On ouvre l'objet STREAM
- Set Stream = server.CreateObject("ADODB.Stream")
- 'On définit le type de données a lire ( ici données binaires, vous pouvez aussi mettre 1 à la place de adbinary )
- Stream.Type = adTypeBinary
- Stream.Open
- 'On définit le fichier a Uploader
- Stream.loadFromFile ("c:\monrep\monfichier.extension")
-
- 'On crée un nouvel enregistrement dans la table
- rs.addnew
- 'Mon champ image recoit les données binaires
- rs.fields("image") = Stream.read
- 'Mise à jour de la base de données
- rs.update
- 'Fermeture des objets
- rs.close
- stream.close
- Set rs=nothing
- Set stream=nothing
- response.redirect "adressedelapagedistante"
-
- '----------------------------------------------------------------
- 'Intervient maintenant la page distante
- 'Toujours ne pas oublier la dll
-
- <!--METADATA TYPE="typelib"
- UUID="00000205-0000-0010-8000-00AA006D2EA4"
- NAME="ADODB Type Library"
- -->
-
- 'Connection à la base SQL Server
- Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base"
-
- 'Connection a la table
- Set rs = server.CreateObject("ADODB.Recordset")
- 'Je vais chercher le premier enregistrement dans mon exemple
- SQL="SELECT * FROM images WHERE id like 1"
- RS.open SQL, conn, 3, 3
-
- 'Ouverture de l'objet STREAM
- Set Stream = server.CreateObject("ADODB.Stream")
- 'On définit le type de données a lire ( ici données binaire, vous pouvez aussi mettre 1 à la place de adbinary )
- Stream.Type = adTypeBinary
- Stream.Open
-
- 'On recupère les données comprise dans le champ
- Stream.write rs.fields("image").value
-
- 'Maintenant on crée le fichier sur le serveur distant
- 'Avec une adresse physique
- 'Ici le mode d'écriture du fichier est en écrasement
- Stream.SaveToFile "cheminphysique\lenomdufichier.extension", adSaveCreateOverWrite
-
- 'On ferme tous les objets
- rs.close
- stream.close
- Set rs=nothing
- Set stream=nothing
-
- ' Il ne reste plus qu'a vérifier ;)
'Pour commencer une page local pour mon exemple je choisi envoi.asp
'Ne pas oublier d'importer la dll permettant d'utiliser ADODB.Stream
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
'Ensuite la fameuse connection avec la base SQL Server
Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base"
'On selectionne ensuite la table sensée contenir les images
Set rs = server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM images"
RS.open SQL, conn, 3, 3
'On ouvre l'objet STREAM
Set Stream = server.CreateObject("ADODB.Stream")
'On définit le type de données a lire ( ici données binaires, vous pouvez aussi mettre 1 à la place de adbinary )
Stream.Type = adTypeBinary
Stream.Open
'On définit le fichier a Uploader
Stream.loadFromFile ("c:\monrep\monfichier.extension")
'On crée un nouvel enregistrement dans la table
rs.addnew
'Mon champ image recoit les données binaires
rs.fields("image") = Stream.read
'Mise à jour de la base de données
rs.update
'Fermeture des objets
rs.close
stream.close
Set rs=nothing
Set stream=nothing
response.redirect "adressedelapagedistante"
'----------------------------------------------------------------
'Intervient maintenant la page distante
'Toujours ne pas oublier la dll
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
'Connection à la base SQL Server
Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base"
'Connection a la table
Set rs = server.CreateObject("ADODB.Recordset")
'Je vais chercher le premier enregistrement dans mon exemple
SQL="SELECT * FROM images WHERE id like 1"
RS.open SQL, conn, 3, 3
'Ouverture de l'objet STREAM
Set Stream = server.CreateObject("ADODB.Stream")
'On définit le type de données a lire ( ici données binaire, vous pouvez aussi mettre 1 à la place de adbinary )
Stream.Type = adTypeBinary
Stream.Open
'On recupère les données comprise dans le champ
Stream.write rs.fields("image").value
'Maintenant on crée le fichier sur le serveur distant
'Avec une adresse physique
'Ici le mode d'écriture du fichier est en écrasement
Stream.SaveToFile "cheminphysique\lenomdufichier.extension", adSaveCreateOverWrite
'On ferme tous les objets
rs.close
stream.close
Set rs=nothing
Set stream=nothing
' Il ne reste plus qu'a vérifier ;)
Conclusion
Pour que cela fonctionne, il faut que le serveur dispose du logiciel SQL Serveur... evidemment, que le serveur n'ai pas bloqué la fonction Stream.
- Quelques Avantages : Facile à programmer et à amménager Pas de composant installé sur le serveur
- Quelques Inconvénients : Trouver un serveur qui dispose de SQL Server et n'ayant pas désactivé le Stream Avoir sa propre liscence somme toute couteuse ;)
Enfin cela reste un moyen détourné ...
Bonne journée a tous
PS si quelqun connait une chaine de connection pour une base de données distante ACCESS étant donné que je ne sais pas si cela se fait ...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Upload Nix [ par Clem ]
Pui je utiliser ton upload pour mon site que je suis en train de faire sur la programmation (Vb,C++,Qb,ASP,Javascript,API,VRML) ?Et comment faire pour
upload [ par rico ]
je monte un site avec une base de donnée access possedant un objet ole, 3 problèmes se posent à moi :1__ pouvoir réaliser un upload du fichier sélecti
pour nix à propos de upload 2.0 [ par bernard ]
Salut Nix,Tout d'abord merci pour le code, je l'utilise actuellement pour uploader 1 fichier attaché depuis mon site dans le cadre d'un dépot de CV en
Lire un fichier binaire [ par dan ]
je voudrais lire le contenu d un fichier binaire, mais je ne trouve que la fonction OpenFileText pour lire le contenu du fichier, et evidemment j ai t
Lister un répertoire sur un serveur [ par Nabel ]
Bonjour, bonjour,Voilà le pb : ma page asp permet d'uploader des fichiers sur le serveur, mais qd j'upload un fichier qui a le même nom qu'un fichier
Upload de fichier automatique, GALERE [ par vincentp ]
Bonjour à tous,Mon projet est d'envoyer des fichiers sur internet avec VB6 sans passer par le ftp. Sur ce site je peux créer des pages ASP et donc réc
Ecrire un fichier binaire [ par yoyo2 ]
Bonjour à tous,Je voudrais savoir s'il y a un équivalent à CreateTextFile pour les fichiers binaires.En PHP on peut le faire mais en ASP je n'ai rien
Vérifier la taille d'un fichier avant l'upload [ par Dura ]
BonjourJ'ai un petit prob,Dans un formulaire classique, il y a un champ "image" = upload!Je vérifie tous les champs sauf la taille du fichier à upload
upload + verification [ par bebe.vodka ]
salut!voila, en fait j'utilise le composant aspSmartUpload dans un programme pour l'upload de fichiers. je verifie aussi si mon fichier existe deja su
Formulaire d'upload d'un fichier et du passage d'autre infos [ par Jerome ]
Bonsoir,Je cherche à créer un formulaire avec plusieurs champs:Nom: champ textePrenom: champ textePhoto: image que l'utilisateur va chercher sur son d
|
Derniers Blogs
TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0 par odewit
Je viens de publier la version 3.0 de Perspective pour Silverlight, qui regroupe un portage sous Silverlight 5.0 des fonctionnalités de Perspective 2.0, le framework 3D de haut-niveau introduit récemment et de nouveaux exemples de code. En voici la li...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|