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
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
QUESTIONQUESTION par Engylove
Cliquez pour lire la suite par Engylove
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|