begin process at 2008 08 29 04:31:59
1 233 502 membres
43 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : insertion Image dans ma BD via upload [ Archives / Base de données ] (alf666666)

insertion Image dans ma BD via upload le 16/08/2005 09:39:00

alf666666
Hello, J'aimerai, avec le code suivant (trouvé sur le site), insérer une image ou fichier non pas sur mon disque dur, mais simplement dans ma BD.

Sélectionnez le fichier à uploader :

Vous avez Uploadé le fichier : #File.ClientFileName#.#File.ClientFileExt#
dans le répertoire : #File.ServerDirectory#
Merci de votre aide

Re : insertion Image dans ma BD via upload le 18/08/2005 11:40:38

bastoun
Bon... j'ai jamais réellement essayé, mais si je ne me trompe pas c'est un truc du genre :
tu écris ton fichier sur le serveur (comme dans ton source), tu le lis avec un <cffile action="readBinary"....>, tu convertis le tout en base64(afin d'en faire des caractères gérables) et tu insères ceci en base, dans un blob. et tu effaces le ficheir original.

Pour le lire, tu lis en base, et tu convertis en binaire. Et n'oublie pas d'indiquer le type mime avec le tag cfcontent...

faudra que j'essaye tiens... par contre ça risque d'utiliser énormément de ressources au niveau serveur, si les fichiers sont gros ou si plusieurs personnes l'utilisent en même temps


Re : insertion Image dans ma BD via upload le 18/08/2005 11:52:47

alf666666
Hello, Merci... Mais y a rien de moins compliqué qui existe pour mettre simplement un fichier sur une BD ? c'est superbement expliqué mais je serais totalement incapable de le faire.. et un blob ? jamais entendu ce terme... en fait le seul but de ma demande.. et que le client puisse me mettre à disposition une photo de son établissement... et que moi, ben je l'affiche sur sur son compte...et tout ca automatiquement... tu vois ce que je veux dire ? Merci Salutations Alf

Re : insertion Image dans ma BD via upload le 18/08/2005 12:46:42

bastoun
bah... dans ce cas, tu stockes juste le nom du fichier en base, dans la table de l'etablissement, et tu stocke tous tes fichiers dans un répertoire particulier... c'est plus simple et plus light.

Pour récupérer le nom du fichieir avant de l'insérer utilises plutot #File.ServerFileName# qui est le nom généré par le serveur si jamais tu gères le nom unique...

si tu n'y arrives, je te ferais une petit exemple


Re : insertion Image dans ma BD via upload le 18/08/2005 13:07:17

alf666666
Je prend bien bien volontiers ton exemple...j'ai tellement peu d'expérience en coldfusion... Merci encore

Re : insertion Image dans ma BD via upload le 22/08/2005 12:15:45

bastoun
désolé, j'ai pas encore eu le temps de t'en écrire un...
bon... allez, j'en pond un vite fait, il est pas complet. il permet juste d'insérer en base(je pense qu'il faut aussi gérer les suppressions en base et la suppression de fichier..Il faudrait aussi gérer les erreurs...).

Je sais pas s'il fonctionne... car pas testé tel quel (peut êtres quelques petits bugs à corriger).

Je parts du principe que tu as une autre table pour gérer tes photos (te permettant d'en avoir ainsi plusieurs par etablissement, si tu mets une clef primaire autoincrementable dans ta table photo), et que tu cliques sur un lien (ou tu proviens d'un formulaire) avec en parametre ton identifiant unique d'etablissement (etablissementidx ??) pour arriver sur le formulaire d'upload.
bon, je sauvegarde aussi le nom original de la photo (pour faire bien...), mais celui à utiliser est celui généré côté serveur (pour éviter les conflits de nom)

<cfset destination="c:\Test">

<cfif not isdefined("form.fichier")>

   <cfform action="upload.cfm" enctype="multipart/form-data" method="post">
    <p>Sélectionnez le fichier à uploader :
    <input type="file" name="fichier" size="45"></p>
    <input type="Submit" value"Uploader">
    <input  type="hidden" name="etablissementIdx" value="#etablissmentidx#">
    </cfform>

<cfelse>
<!--- Sauvegarde fichier --->
        <cffile action="UPLOAD" filefield="NoteFile" destination="#Destination#" nameconflict="MAKEUNIQUE">
   
        <!--- Référence le fichier dans la base --->
        <cfquery datasource="tonDatasource">
            INSERT INTO Photo( PEtablissementIdx, POriginalName, PFileName)
            VALUES( #etablissementIdx#, '#cffile.clientFile#', '#cffile.serverFile#' )
        </cfquery>
      
        Upload effectué...
</cfif>


Re : insertion Image dans ma BD via upload le 22/08/2005 12:19:29

bastoun
ah oui... la table est comme suit :
Photo( PIdx,PEtablissementIdx, POriginalName, PFileName)



Re : insertion Image dans ma BD via upload le 23/08/2005 08:55:06

alf666666
Salut Bastoun, Un grand merci pour ton aide encore une fois. Petite question : tu pourrais juste me dire à quoi correspond exactement les champs dans la table photo, et de quel genre sont-ils ? style si PEtablissement c'est un char ou bien un int etc...et à quoi sert-il en 2 mots. 2ème questions : que veut dire cette ligne de code Merci Merci

Re : insertion Image dans ma BD via upload le 23/08/2005 09:58:55

bastoun
Réponse acceptée !
le <input type="hidden"...> c'est un champ caché pour passer la variable correspondant à l'identifiant unique de ton etablissement... tu peux faire comme ça ou autrement (var de sessions par exemple... à toi de voir...  suivant ce que tu souhaites faire)

pour la table, je ferais par exemple :
pidx : numérique autoincrémentable (à toi de voir quel type de numérique)
petablissementidx : même type que ta clef primaire de la table etablissement (je suppose ici numérique entier)
pour les champs noms : bah... un champ de caractères de 256 devrait suffire

bon. le prends pas mal, mais j'ai l'impression que tu rames graves, et pas seulement en coldfusion. Si tu veux pouvoir être capable de te débrouiller seul, il faut que tu aies quand même de bonnes bases en HTML (ou XHTML) , c'est mieux..
 Je te conseillerais aussi de trouver la doc de CFMX en français, ou un bouquin (genre celui de campuspress) sur cfmx, et de lire attentivement et en t'aidant des exemples pour faire tes propres petites appli...Pas besoin de tous lire au départ, juste les parties de premiers pas et d'introduction... tu liras la partie avancée après.. comme ça, tu acquierera les bases de CF... normalement il y a quelques petites explications(trés succintes) dans ce bouquin sur SQL et les bases de données... c'est auss trés utile. Je te conseillerais donc de prendre, à terme, également un bouquin(ou une doc sur le net) d'introduction aux bases de données et au SQL





Classé sous : fichier, bd, file, image, insertion

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS