Bonjour,
J'ai un problème étrange.... Voici la situation :
J'ai un fichier (.csv, txt ou autre) stocké dans un BLOB dans une base de données Oracle.
Dans mon application (.net c# 1.1), j'ai un lien pour télécharger ce fichier. Suite à un clic j'ai la fenêtre classique windows téléchargement de fichier avec les boutons "Ouvrir", "Enregistrer" et "Annuler".
Le problème : mon fichier que j'ouvre ou que j'enregistre est vide! Attention : je suis sure qu'il n'est pas vide en base de données.
Le gros problème : sur certains environnements ça marche très bien et sur les environnements où ça ne marche pas, j'ai d'autres liens dans l'application avec le même principe (téléchargement de fichier stocké en base) qui marchent très bien!
Je ne sais plus où chercher... :-(
- dans le .net : ça marche sur certains environnements alors pourquoi pas partout?
- dans les tables : je ne trouve pas de différences entre les fichiers qui marchent et ceux qui ne marchent pas....
- dans la config IIS, windows? je ne sais pas quoi chercher et où...
Si vous avez une idée, je suis preneuse! Merci d'avance
Ci-dessous un extrait du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public void DownloadFicheTrace(Page pPageCourante, string pFicheTrace) { Stream vStreamFT = null; try { vStreamFT = _serviceFicheTrace.LoadFicheTrace(pFicheTrace); if (vStreamFT == null) { throw new FicheSillonException("La fiche de tracé " + pFicheTrace + " n'existe pas", new ArrayList()); } else { //mise au début (on ne sait pas si c fait) vStreamFT.Position =0; pPageCourante.Response.Clear(); pPageCourante.Response.ContentEncoding = System.Text.Encoding.UTF8; pPageCourante.Response.AddHeader("Content-Type", "text/plain"); pPageCourante.Response.AddHeader("Content-Disposition", "Attachment; Filename=\"" + pFicheTrace + "\""); byte[] vBuff = new byte[2048]; int vLu = 0; while ((vLu = vStreamFT.Read(vBuff, 0, vBuff.Length)) > 0) { pPageCourante.Response.OutputStream.Write (vBuff, 0, vLu); } pPageCourante.Response.Flush(); pPageCourante.Response.Close(); } } catch (Exception ex) { throw ex; } finally { if (vStreamFT != null) vStreamFT.Close(); } }
Partager