Je dois envoyer un fichier à mon webservice, mais le webservice suppose que le fichier (byte Array) est un base64Binary.Codage base64 en Java et décodage en C#
Avant le codage, le fichier byteArrayFile est enregistré sur le disque en tant que fichier standard. (Je le fais juste pour le test)
Ainsi, dans mon client Java pour webservice, j'envoie les informations de cette façon:
String file = new sun.misc.BASE64Encoder().encode(byteArrayFile);
port.sendFileToWebService(file);
webservice doivent décoder les informations et enregistrer Received fichier sur le disque.
[WebMethod]
public string sendFileToWebService(string file)
{
string dirname = HttpContext.Current.Request.PhysicalApplicationPath + "\\Attachments\\";
if (!System.IO.Directory.Exists(dirname))
{
System.IO.Directory.CreateDirectory(dirname);
}
string filename = dirname + "/" + "file.sim";
WebClient myWebClient = new WebClient();
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] byteArray = null;
byteArray = Convert.FromBase64String(file.Replace("\n", ""));
byte[] responseArray = myWebClient.UploadData(filename, "POST", byteArray);
return "Webservice says OK";
}
Le problème est:
Le fichier enregistré sur le disque (avant le codage) et le fichier décodé avec C# ne sont pas égaux. Je ne sais pas si c'est un problème de codage Java ou de décodage C#. Toutes les suggestions, y compris la modification des types de fichiers ou du processus logique, seront toujours appréciées.
Merci d'avance!
EDIT - comparaison du fichier:
Original File http://img819.imageshack.us/img819/820/originalu.png
Decoded File (after Java encoding) http://img826.imageshack.us/img826/3184/processed.png
Le fichier d'origine est enregistré sur mon disque local. L'autre fichier est envoyé à Webservice qui sauvegarde le fichier sur le disque du serveur. Je suis en mesure d'accéder aux deux emplacements et d'ouvrir les fichiers avec Notepad ++ et de confirmer que la taille et le contenu sont différents dans les deux fichiers. – CalypsOOO
Pourquoi utilisez-vous un WebClient dans votre code C#? – nos
Je ne suis pas sûr ... J'ai pris ce code sur un forum. – CalypsOOO