|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 86 ![]() |
Bonjour
Mon niveau en ColdFusion date d'hier et je suis plutôt mainframiste d'habitude so ... Voici ma question : Je récupère un champ Clob de ma base de données Oracle et je veux niveau affichage mettre un lien sur ce Clob (dont le contenu pourrait ête n'importe quoi (.xls, .doc, .txt ...) Comme puis-je m'y prendre ? Puis-je faire ça d'un coup, ou dois-je décharger ce Clob dans un fichier temporaire puis mettre un lien Download qui point sur ce fichier temporaire ? Important : La version sur mon serveur de Cold Fusion est la 6.1 Merci pour toute réponse Laurent
__________________
PT, ROT, VTT |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
Bonjour,
pour le cloc, blob avec Oracle, nous avons mis en place une solution avec JDBC, mais en version CF7. Cela doit aussi fonctionner avec la version 6.1. On peut utiliser les deux manières, soit en directe soit avec un fichier temp. L'avantage de ne pas avoir un fichier temporaire est de ne pas laisser de trace (lien) qui pourrait être ouvert par une autre personne par exemple. Il suffit de prendre le contenu, le mettre dans une var, de faire un cfoutput en ayant changé l'entête (MIME) selon le type de fichier. Si tu désires des détails, je peux te filler qq source que nous utilisons, mais dans les grandes lignes c'est ça. Fais moi signe durant la semaine, j'ai pas de source avec moi aujourd'hui. Christophe |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 86 ![]() |
=> Je t'ai répondu par message privé
__________________
PT, ROT, VTT |
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
OK,
Voici un bout de code pour sortir du texte brut d'un blob. Nous avons donc une table dans un DB Oracle 10g qui contient entre autre un champ Blob (colv_blob). Pour chaque fichier nous gardons le nom du fichier au moment de l'upload dans la base et nous avons une liste de mime type dans une autre table (pas dans l'exemple). A chaque demande de fichier, nous chargeons le blob, on le converti en string car il est uploader dans la base en binary. C'est un exemple simple, mais comme tout notre développement est dans des objets, cela sera un peu long et compliqué à expliquer. J'ai donc préféré refaire un petit bout de code sur notre base. Ce qu'il reste donc à gérer, c'est effectivement les types MIME, faire attention au header, comme on redéfini celui-ci, il ne doit contenir que des données du type. Si par exemple le debug reste actif pour un fichier PDF, cela ne fonctionnera pas. Nous utilisons une connexion à la db oracle via JDBC, il faut faire attention avec le version de JDBC (la dernière version convient très bien), sinon on est limité avec la taille et surtout ne pas oublier de cocher les cases Blob et Clob dans l'administration de Coldfusion sur la datasource. Voilà à ta disposition si tu as d'autre question. Christophe Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 86 ![]() |
Suite ...
Merci tout d'abord pour ce bout de code ! Alors ce que je rencontre maintenant comme pb c'est que mon fichier attaché une fois downloadé de ma base Oracle est illisible , ou plutôt il contient dans son ensemble ce type de données => '... 1626C65207265706F7274730D0A0D0 ...' Note : à la base c'était un TXT ... J'ai pourtant bien effectué un toString du Clob, maintenant c'est peut-être au stockage (insertion) de mes données en Base que j'ai loupé quelque chose ? Code :
__________________
PT, ROT, VTT |
||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 86 ![]() |
je joins l'Insert , ça peu aider à comprendre mon pb
INSERT INTO MaTable (SEQ,ATTACHMENT,ATTACHMENT_NAME,...) values ( #QRY_SEQ.seq_request#, <cfqueryparam value="#file_blob#" cfsqltype="cf_sql_blob">, '#v_attachment_name#', ...
__________________
PT, ROT, VTT |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Alors cela peut sembler un peu bizarre, mais après plusieurs essais, la meilleure manière que l'on a trouvé pour traiter tous les cas est le code suivant pour l'insert. Sans cette multitude de conversion, on n'avait chaque fois un problème avec certain type de fichier (pdf, exe, jpg, txt, html) cela fonctionne bien comme cela chez nous.
Code :
<cfqueryparam value="#toBinary(toBase64(toString(COLV_BLOB)))#" cfsqltype="cf_sql_blob"> |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 86 ![]() |
Merci pour tes bonnes remarques
Et particulièrement celle de l'administration ColFusion sur clob et blob It's working now !
__________________
PT, ROT, VTT |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com