begin process at 2013 06 18 08:49:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > ENREGISTRER DES FICHIERS DANS UNE BASE DE DONNÉES ET LES RESTITUER

ENREGISTRER DES FICHIERS DANS UNE BASE DE DONNÉES ET LES RESTITUER


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Classé sous :enregistrer, save, fichier, database, base Niveau :Initié Date de création :08/07/2005 Date de mise à jour :17/07/2005 01:08:19 Vu / téléchargé :42 073 / 2 812

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
J'ai fait cette source suite à pas mal de questions sur le forum, pour par exemple comment afficher une image stockée dans une base de données, proposer un zip en telechargement etc...

Comment cela fonctionne ?

il y a une page upload.aspx qui permet comme son nom l'indique d'envoyer vers le serveur des images. Lorsque l'on clique sur le bouton j'ai quelques traitement qui permet de vérifier le type de l'image etc... puis ca va créer un nouveau object Fichier.

cet object Fichier, est une classe que j'ai faites, celui ci ne comporte aucun code, pour bien séparer les couches vous devriez mettre tous les objects de données dans un projet bien définit.

Ensuite une fois que mon object Fichier est créer, j'appelle la méthode AddFile en passant le fichier en paramètre, cette méthode se trouve dans une classe de la couche service qui elle aussi devrait se situer dans un autre projet. Cette méthode envoie le fichier dans la base de données, et renvoie l'id du fichier.

J'ai également une page fichierByID qui prend en paramètre l'id du fichier demandé. Celui ci va se charger d'afficher la requete, pour cela il va faire appel à la méthode GetFileByID de la couche service. une fois notre fichier recupéré, on va pouvoir soit l'afficher directement dans la page, et laisser le navigateur traiter ca, c'est par exemple le cas d'une photo ou un fichier PDF. On pourra également forcé le navigateur à telechargé le fichier, par exemple pour un zip.

c'est cette partie du code qui s'en occupe :

        'variable permettant de savoir si on force le telechargement ou pas, on peut par exemple
        'afficher directement une image
        Dim ForceDownload As Boolean = True

        'si le fichier comporte un de ces ContentType
        Dim ContentType As String = "jpeg|jpg|png|gif"
        For Each s As String In ContentType.Split("|")
            If oFichier.ContentType.IndexOf(s) > 0 Then
                Response.ContentType = oFichier.ContentType
                ForceDownload = False
                Exit For
            End If
        Next

        'on regarde si on a trouvé le contentType c'est à dire que c'est le navigateur qui s'occupe du fichier, sinon on force le download
        If ForceDownload Then
            System.Web.HttpContext.Current.Response.AddHeader( "Content-Disposition", "attachment; filename=" & id & "." & oFichier.Extension)
            Response.ContentType = "application/octet-stream"
        End If


J'ai fait ce code en utilisant Asp.net 2 il est donc possible que j'ai utilisé des fonctionalités nouvelles, mais normalement j'ai rien utilisé de completement nouveau, juste des petites astuce il sera donc trés facile d'adapter le code pour .net 1

voici le schéma de la base de donnée, il vous faudra donc créer une table et deux procédures pour utiliser mon exemple. Vous pouvez aussi regarder la capture pour voir a quoi ressemble la base de données

'
' Voici la table Table_Fichiers que vous devrez avoir pour utiliser cet exemple
'
'Column Name    type            Allow null
'-----------------------------------------
'F ileID         int             Unchecked
'Guid         nvarchar(50) Unchecked
'ContentType text         Unchecked
'Length         int             Unchecked
'Fichier     varbinary(MAX) Unchecked
'Extension     nchar(10)     Unchecked
'
'
' Voici les deux procédures stockées utilisé pour ajouter et recuperer les données
'
'
'-- GetFileByID ----------------------------------------
'ALTER procedure [dbo].[GetFileByID]
'   (
'       @FileID int
'   )
'as
'
'SELECT Fichier, Length, ContentType, Extension, FileID
'FROM Table_Fichiers
'WHERE FileID = @FileID
'
'
'-- AddFile ---------------------------------------------
'ALT ER procedure [dbo].[AddFile]
'   (
'       @Fichier varbinary(MAX),
'       @ContentType text,
'       @Length int,
'       @Guid char(50),
'       @Extension nchar(10)
'   )
'as
'
'INSERT INTO Table_Fichiers(Fichier, ContentType, Length, Guid, Extension)
'VALUES (@Fichier, @ContentType, @Length, @Guid, @Extension)
'
' -- permet de recuperer l'id de l'element qu'on vient de rajouter
'SELECT FileID FROM Table_Fichiers WHERE Guid = @Guid
'

Je tient à préciser que je connais trés peu SQL, mon code doit surement etre optimisable, si vous avez des suggestions dites le moi

Source

  • Il y a dans le zip 6 fichiers. Une image de la structure de la base de données (SQL 2005 dans mon cas, mais cela devrait fonctionner avec SQL 2000), une page de code comprenant 2 classes, ainsi que 2 pages avec les fichiers de code behind associé
Il y a dans le zip 6 fichiers. Une image de la structure de la base de données (SQL 2005 dans mon cas, mais cela devrait fonctionner avec SQL 2000), une page de code comprenant 2 classes, ainsi que 2 pages avec les fichiers de code behind associé

 Conclusion

Vous avez pu remarquer que j'ai mis une GUID dans la base de données. vous pourrez vous servir de ceci en créant par exemple une nouvelle procédure stockée, une page FichierByGuid.aspx ceci est utile dans le cas ou voulez un peu de confidentialité, en effet il est trés aisé de recuperer un autre fichier contenu dans la bdd, en utilisant une guid cela sera plus compliqué, ceci ne procurera bien sur pas une confidentialité absolue, trés loin de la meme, mais ce sera un premier pas.


j'ai commenté le code je pense suffisament, si toutefois vous avez des problèmes besoin d'explication, dites le moi. N'hésitez pas non plus à me dire si vous avez des suggestions, bugs etc...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 juillet 2005 17:38:41 :
oublie du enctype="multipart/form-data" sur la balise form de l'upload
17 juillet 2005 01:08:19 :
MAJ

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID...
Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Source avec Zip Source .NET (Dotnet) OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST<T>
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA...

 Sources de la même categorie

CHARGER LE DROPDOWNLIST AVEC DEUX TABLES par nsegi
Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool

 Sources en rapport avec celle ci

Source .NET (Dotnet) .NET2 GESTIONNAIRE DE RELATIONS [N,N] AVEC GRIDVIEW. par gldfdp
Source avec Zip COMPTEUR ASP SANS OBJET SESSION FONCTIONNE IMPECC par tidave
Source .NET (Dotnet) ASP.NET - SAUVEGARDER DANS UN FICHIER XML LA LISTE DES FICHI... par fabrice69
LES BASES DE DONNÉES par ASPMan
CRÉATION D'UNE LISTE DE CHOIX, DONT LES OPTIONS SONT ISSUES ... par Kdo

Commentaires et avis

Commentaire de sebmafate le 08/07/2005 09:26:17 administrateur CS

et en plus... c'est beau ;)

Commentaire de Azraelinou le 06/10/2006 11:41:30

Salut,

je dois dire que ta source m'a été trés utile, mais m'initiant à l'ASP ou plutot à web developpement, tu trouveras peut etre ma question stupide...

j'explique: apres avoir inseré, et donc rappelé l'image stockée dans ma BDD, je cherche maintenant a ne l'afficher que dans un contexte particulier en en l'occurence dans une balise (<DIV> ou <IMG>) pour faire en sorte que l'image puisse etre adaptée a son contenu et/ou son conteneur (exemple news avec une image en haut a gauche et le texte qui suit son orientation.

ce pourrait il que quelqu'un me montre comment m'y appliquer?

merci d'avance.

Johan

Commentaire de armand19841984 le 21/03/2007 11:32:36

ton code il est bien je cherchais a le faire justement mais bon tout est déja fait MERCI!! Mais le probleme moi jaime codé en C# et non en VB donc je vais tous traduire LOL sinon si tu la en C# ,fait nous signe

Commentaire de armand19841984 le 21/03/2007 13:26:55

jai un pb avec ton code il me met comme erreur
"Type 'FichierBDD' et 'Fichier' non défini"
tu peux mexpliquer l'erreur stp!!!

merci

Commentaire de DONYONE le 30/06/2008 18:45:20

Bonjour j'ai téléchargé le fichier zip mais cependant j'ai aussi un petit probleme j'ai l'erreur avec le fichier BDD et Fichier non défini est ce que j'aurai peu etre brulé une etape. pouvez vous s'il vous plait nous donner un peu plus de details sur ce pb.
merci d'avance.

Commentaire de aminetous le 17/05/2009 14:39:12

Merci bc je cherche cet reponse depuit longtemp
thx

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Enregistrement d'un fichier dans une base [ par guidal ] Bien le bonjour :)Voilà donc mon problème ...Je souhaite enregistrer un fichier (de type quelconque) dans une base de donnée ...Le problème, c'est la C# Enregistrer un fichier uploadé dans une base de donnée [ par javato ] Bonjour, Je voudrais savoir comment on peut faire pour enregistrer un fichier upladé directement dans la base. Pour l'instant ce que j'au réussi à fai Droits d'écriture sur base Access [ par vmontagnon ] Bonjour à tous,Désolé, ça doit être un problème  classique, mais impossible d'ouvrir une base access en lecture/ecriture via des pages ASP.Net c#J'ai Date et BDD [ par Mickylord ] Bonjour !Mon probl&#232;me est le suivant :J'aimerai enregistrer une date dans ma base de donn&#233;e &#224; partire d'une page avec la m&#233;thode D Base de données Access distante [ par sisiz ] Bonjour, avec mon appli ASP.NET, je souhaite mon connecter sur une base MS ACCESS distante. J'ai invariablement la même erreur : Microsoft Jet ne peut enregistrer fichier sur serveur ftp [ par chandler8692 ] Bonjour tout le monde. Aujourd'hui, je souhaite créer un fichier xml dans mon code puis l'enregistrer sur mon serveur ftp. C'est cette seconde partie Images [ par John7 ] Bonsoir à tous,Si vous pouviez me donner un petit coup de main car j'ai un champ image alimenté par une base de données(il n'y a que le chemin dans la Poster un Fichier XML via HTTP [ par XFire ] Salut tout le monde;Je travaille sur un projet de base de donnees, et je veux envoyer le contenu d'une table a un server distant; 1-j'ai contruit un f Dialogue 'Enregistrer sous...' [ par cb92 ] BonjourJe reprends une application Web développée sous Visual Studio 2005 - C# - ASP, et je débute sur cet environnement.J'ai actuellement une icône, Enregistrer chemin d'acces bdd (antislash) [ par ronando ] Bonjour, sur ma page .aspx j'upload un fichier sur mon serveur et je veux ensuite enregistrer le chemin du fichier dans une base de données (mysql)


Nos sponsors


Sondage...

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales