# Webmasters - Dveloppement Web > Autres langages pour le Web > Coldfusion >  Mettre un lien Download sur donnes Clob provenant Base Oracle

## vttman

Bonjour

Mon niveau en ColdFusion date d'hier et
je suis plutt mainframiste d'habitude so ...

Voici ma question :
Je rcupre un champ Clob de ma base de donnes 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 dcharger 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 rponse
Laurent

----------


## cchevalier72

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 manires, 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'entte (MIME) selon le type de fichier. Si tu dsires des dtails, 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

----------


## vttman

:;): 

=>

Je t'ai rpondu par message priv

----------


## cchevalier72

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 dveloppement est dans des objets, cela sera un peu long et compliqu  expliquer. J'ai donc prfr refaire un petit bout de code sur notre base.

Ce qu'il reste donc  grer, c'est effectivement les types MIME, faire attention au header, comme on redfini celui-ci, il ne doit contenir que des donnes 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 dernire version convient trs 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



```

```

----------


## vttman

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 plutt il contient dans son ensemble ce type de donnes => '... 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 donnes en Base que j'ai loup 
quelque chose ?




```

```

----------


## vttman

je joins l'Insert , a peu aider  comprendre mon pb  :8O: 


INSERT INTO MaTable
		(SEQ,ATTACHMENT,ATTACHMENT_NAME,...) 
		values (
		#QRY_SEQ.seq_request#,
		<cfqueryparam value="#file_blob#" cfsqltype="cf_sql_blob">,
		'#v_attachment_name#', ...

----------


## cchevalier72

Alors cela peut sembler un peu bizarre, mais aprs plusieurs essais, la meilleure manire 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 problme avec certain type de fichier (pdf, exe, jpg, txt, html) cela fonctionne bien comme cela chez nous.



```
<cfqueryparam value="#toBinary(toBase64(toString(COLV_BLOB)))#" cfsqltype="cf_sql_blob">
```

----------


## vttman

Merci pour tes bonnes remarques 

Et particulirement celle de l'administration ColFusion sur clob et blob

It's working now !
 ::king::

----------

