begin process at 2008 07 20 15:52:36
1 213 292 membres
207 nouveaux aujourd'hui
14 166 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 : contenu d'un fichier byte[] en string via WebService... [ Archives / .NET ] (Bowen123)

contenu d'un fichier byte[] en string via WebService... le 10/03/2005 11:27:42

Bowen123
Bonjour tous,

Je tente de passer le contenu d'un fichier
( string monContenuFichierString = Convert.ToBase64String(byte[ ] monContenuFichier); )
 dans une string via webService. ce contenu est insrer dans une string "XML" que j'ai construit, genre :

maStringXML = "<Fichier nom=\"" + nomFichier + "\"" + " contenu= \"" + monContenuFichierString + "\"" + "</Fichier>")

Mon problème est que je n'ai pas la fin de ma string, a savoir la fermeture de balise, car je supose ke le contenu est trop "gros";

J'ai essayé de passer par un StringBuilder meme resultat:

public string getXml(bool contenu){

StringBuilder xml=new StringBuilder();
xml.Insert(xml.Length,
"<Fichier nom=\"" + this.ficNom +"\" path=\"" + this.ficSpec);

if (contenu) {
   xml.Insert (xml.Length,
"\" >");
   xml.Insert(xml.Length,
"<Contenu=\"byte\">" +    Convert.ToBase64String   (this.FicContenu,0,this.FicContenu.Length));//FicContenu est un byte[ ]
   xml.Insert(xml.Length,
"</Contenu>");
}

xml.Insert(xml.Length, "\" >");
xml.Insert(xml.Length,
"</Fichier>");

return xml.ToString();

Je ne peu pas utilisé les Objet XML (XMLNode, XMLElement, etc.. ), obligé de passé par une string (directive projet).

des idées?


Re : contenu d'un fichier byte[] en string via WebService... le 10/03/2005 12:16:05

Crazyht
(Admin CS)

public string getXml(bool contenu)
{
   StringBuilder xml=
new StringBuilder();
   xml.Append(
"<Fichier nom=\"");
   xml.Append(this.ficNom);
   xml.Append(
"\" path=\"");
   xml.Append(this.ficSpec);
   xml.Append("\" >");
   if (contenu) 
   {

      xml.Append(
"<Contenu=\"byte\">");   
      xml.Append(Convert.ToBase64String   (
this.FicContenu,0,this.FicContenu.Length));
      xml.Append(
"</Contenu>");
   }
   xml.Append(
"</Fichier>");
   return xml.ToString();
}

Essaye comme ca, Il doit y avoir une erreur de formatage du XML dans ton code de base ...

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]


Re : contenu d'un fichier byte[] en string via WebService... le 10/03/2005 17:43:34

Bowen123
Merci!

C'est vrai que c'est un peu plus propre comme ça.

cependant, je viens de constater que l'erreur venai du chargement de cette string :

XmlDocument dataXML = new XmlDocument();

dataXML.LoadXml(chaineXML);

Je pense que certains caractere du contenu (du tableau de byte reconverti en string) ne passe pas dans le load.

Je suis vraiment pas doué pour le xml et les classes xml en C#.

Un autre coup de main please, merci


Re : contenu d'un fichier byte[] en string via WebService... le 10/03/2005 17:59:58

Crazyht
(Admin CS)
Hummm...

Suis pas certain de ton hypothese, En effet la Base64 est justement faites pour que toutes les valeurs d'un byte soit transformer en qq chose de valide en XML (ou autre)

Par contre essaie dans :
xml.Append("<Contenu=\"byte\">"); 

Essaie de retirer le ="byte", je suis pas sur que ca soit vraiment valide en XML sous cette forme <contenu="byte">blabla</contenu> je parirer plus pour un flux ressemblant à :

public string getXml(bool contenu)
{
   StringBuilder xml=
new StringBuilder();
   xml.Append(
"<Fichier nom=\"");
   xml.Append(this.ficNom);
   xml.Append(
"\" path=\"");
   xml.Append(this.ficSpec);
   xml.Append("\" >");
   if (contenu) 
   {

      xml.Append("<ContenuType>byte</ContenuType>");   
      xml.Append("<Contenu>");   
      xml.Append(Convert.ToBase64String   (
this.FicContenu,0,this.FicContenu.Length));
      xml.Append(
"</Contenu>");
   }
   xml.Append(
"</Fichier>");
   return xml.ToString();
}


A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]

Re : contenu d'un fichier byte[] en string via WebService... le 11/03/2005 10:39:43

Bowen123
le loadXml du dataDocument souleve tjrs une XMLException.
(" Jeton inattendu.Le jeton attendu est 'NAME' Ligne 1 position 102.")

peut on chargé la string XML formé ci dessus meme si elle ne contien pas la ligne d'encoding? ca vien peut etre de la?..

Re : contenu d'un fichier byte[] en string via WebService... le 11/03/2005 10:42:55

Crazyht
(Admin CS)
Ha ha bonne question, je viens juste de penser à la meme chose en lisant le debut de ta reponse :)

je serait tenter de dire : "Essaie :)"

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]

Re : contenu d'un fichier byte[] en string via WebService... le 11/03/2005 18:42:21

Bowen123
bon pour ceux qui aurait le meme probleme, j'ai résolu le mien en enlevant l'attribut de mon noeud enfant (ici le noeud "CONTENU").

apparement soit :
- il ne peu y avoir d'attribut à un noeud enfant
- il ne peu y avoir et un attribut ET une valeur dans le neoud en meme temps....

Merci Crazyht pour ton soutient ;)


Re : contenu d'un fichier byte[] en string via WebService... le 11/03/2005 18:50:27

Crazyht
(Admin CS)

Mais dis mois c t pas ma dexieme reponse ca ?

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]

Re : contenu d'un fichier byte[] en string via WebService... le 15/03/2005 16:26:25

Bowen123
Sisi  c bien pour ca que je te remercie d'ailleur ;)

Cependant, le XML Myster demeure... pkoi ne peut-on pas avoir d'attribut ET une valeur pour un noeud enfant?... mais ça.. c'est une autre h... euh un autre sujet

Re : contenu d'un fichier byte[] en string via WebService... le 16/03/2005 08:30:00

Crazyht
(Admin CS)
En fait dans ce cas cela devrait s'ecrire :

<contenu type='byte'>blabla</contenu>

et pas
<contenu='byte'>blabla</contenu>

l'attribut du noeud etant type :)

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]


Classé sous : insert, string, contenu, xml, length

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS