Ouverture d'un fichier image [Résolu]

Signaler
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
1
Date d'inscription
samedi 27 octobre 2001
Statut
Membre
Dernière intervention
6 novembre 2004
-
salut
dans mon prog, je dois ouvrir un fichier jpg, pour le resauvegarder dans un autre emplacement, le problème c'est que quand je le lit, et je l'ecrit, il devient illisible, et même quand j'ouvre le fichier d'origine et le deuxième avec le bloc-notes, ils sont différents un peu, voilà ce que je fait pour ouvrir:

System.IO.FileStream dd = new System.IO.FileStream(InscriParcourir.FileName,System.IO.FileMode.Open);
byte [] Recu = new byte[dd.Length];
dd.Read(Recu,0,Recu.Length);
Env = System.Text.ASCIIEncoding.ASCII.GetString(Recu);

pour l'ecriture

System.IO.StreamWriter RT = new System.IO.StreamWriter("f:\\Serveur\\Avatar\\aa.jpg" );
RT.Write(Env);

le copier coller directe du fichier ne résoud pas mon problème, faut le lire et le réecrire, car la lecture et de chez le client, et l'ecréture et dans le serveur, soyez sur que l'envoie de données ne fait aucune perte, c'est testé (avec un fichier jpg qui contient "aaa", ca reste "aaa" même cher le serveur)

merci de m'aider, je pense que le problème et dans l'encodage.
merci
http://www.devportail.tk

11 réponses

Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
System.IO.FileStream dd = new System.IO.FileStream(InscriParcourir.FileName,System.IO.FileMode.Open);
byte [] Recu = new byte[dd.Length];
dd.Read(Recu,0,Recu.Length);
Env = Convert.ToBase64String(Recu, 0,Recu.Length);


pour l'ecriture

System.IO.StreamWriter RT = new System.IO.StreamWriter("f:\\Serveur\\Avatar\\aa.jpg" ); 
RT.Write(Convert.FromBase64String(Env));


A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Pour Ecrire :

System.IO.FileStream dd = new System.IO.FileStream("f:\\Serveur\\Avatar\\aa.jpg"); 
byte[] buf = Convert.FromBase64String(Env);
dd.Write (buf,0,buf.Length);


Il est a noter que le code que je fournis n'est pas verifié. Je suis juste la pour donner une piste de recherche.

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Juste une question :

Pourquoi faire System.Text.ASCIIEncoding.ASCII.GetString(Recu) ?

Je vois pas l'interet puisqu'un JPG est un fichier binaire

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

seulement parceque quand on envoie, la variable doit être un texte string, et non pas un tableau ou sont stocké les codes ascii.
RT.Write(string truc)

http://www.devportail.tk
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

SVP AIDEZ MOI !!! je savais pas qu'ouvrir un fichier non .txt est aussi difficile avec ce langage
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
A mon avis, le probleme viens de la transformation en String, essaie plutot un passage en Base64 et une reconversion de la base64 en binaire apres transfere.

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

je pense pas que c'est de l'encodage, ni de la transformation, parceque j'ai modifié la facon de la lecture, ici le StreamReader(,true) est pour qu'il détecte automatiquement l'encodage:

System.IO.FileStream rr = new System.IO.FileStream(InscriParcourir.FileName,System.IO.FileMode.Open );
char [] Recu = new char[rr.Length ];
rr.Close();
System.IO.StreamReader dd = new System.IO.StreamReader(InscriParcourir.FileName,true);
dd.Read(Recu,0,Recu.Length);
string ee = (new string(Recu));//ici on transforme en string
Env +=ee+InscriParcourir.FileName.Substring(InscriParcourir.FileName.Length-4,4dd.Close();

la transformation est depuis char maintenant, et non byte, alors il ne fait que les coller !!!
Alors, c'est impossible????même la détection auto est fausse!!! non, c'est pas pour ca que je vais abondonner mon projet?? SVP aidez moi

http://www.devportail.tk
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Code un peu commenté:

System.IO.FileStream rr = new System.IO.FileStream(PATH,System.IO.FileMode.Open );//on crée ca pour savoir la longuer du fichier
char [] Recu = new char[rr.Length ];
rr.Close();//on ferme le FileStream pour crée un StreamReader
System.IO.StreamReader dd = new System.IO.StreamReader(PATH,true);
dd.Read(Recu,0,Recu.Length);// la lecture
string ee = (new string(Recu));//ici on transforme en string
dd.Close();

http://www.devportail.tk
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Ca n'a pas marché, il écrit dans le fichier cette ligne bizzard

System.Byte[]

c'est difficile d'ouvrir un fichier, je savais pas que c'est trop dûr, en vb, tout les fichiers sont les même, pas d'encodage ni rien, tu ouvres, tu lis,j'aime bien avoir une commande qui ouvre et qui lit comme celle de vb.

merci comême de ton aide, et j'éspère bien que tu me trouveras une solution, je veux pas dire à mes pottes que j'ai abondonné mon serveur parce-que je sais pas comment ouvrir un fichier, merci.

http://www.devportail.tk
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht Merci M.Crazyht
Messages postés
1
Date d'inscription
samedi 27 octobre 2001
Statut
Membre
Dernière intervention
6 novembre 2004

bonjour,
je cherche aussi a ouvrir un fichier avec c#
as tu trouvé la solution?
zenga.lilo@caramail.com