Försöker få till ett system där jag ska kunna ladda upp binära filer till en webbservice genom att base64 koda dom, men lyckas inte riktigt få till det hela. (Filen blir korrupt) Du behöver inte koda om filen, det görs automatiskt, se denna tråd: [Skicka binärfil via SOAP?] hmm, det där låter ju bra, men får det inte att funka. Du har en webservice och en php server? Jag utgår ifrån det Nej alltså "servern" är skriven i php (specifikt nusoap biblioteket).skicka binär fil som base64 kodad till webservice
Så här ser det ut nu..
byte[] buf = File.ReadAllBytes(openFileUpload.FileName);
byte[] encodedBytes = EncodeBytes(buf);
byte[] result = new SHA1CryptoServiceProvider().ComputeHash(buf);
därefter skickar jag encodedBytes.
EncodeBytes respektive DecodeBytes
static byte[] EncodeBytes(byte[] indata) {
string data = Convert.ToBase64String(indata, Base64FormattingOptions.None);
return Encoding.ASCII.GetBytes(data);
}
static byte[] DecodeBytes(byte[] indata) {
string data = Encoding.ASCII.GetString(indata);
return Convert.FromBase64String(data);
}
Har jag gjort nåt billigt fel här, eller ska jag söka nån annan stans?
Sv: skicka binär fil som base64 kodad till webservice
/JohanSv:skicka binär fil som base64 kodad till webservice
Dekodningen misslyckas i andra ändan.
Saken är den att klienten är C#, men serialiseringen borde väl? funka på samma sätt på klientsidan?
(Servern är php)Sv: skicka binär fil som base64 kodad till webservice
Då ska du inte bry dig om base64 i webservice, om du gör det får du två sådana och måste följdaktligen "packa" upp två gånger i php-servern. Således bör du inte bry dig om det i web service och sedan konvertera upp det en gång i phpservernSv:skicka binär fil som base64 kodad till webservice
Fick det nu att fungera, men måste tydligen själv koda data jag skickar TILL servern, medan data FRÅN servern blir automagiskt dekodat !?!