如何在Webapi中将Swift(IOS)字符串转换为base64字符串?

时间:2016-06-08 05:45:52

标签: ios swift image asp.net-web-api image-conversion

我正在为Android和IOS的应用程序编写web api,我有一个问题是将base64转换为仅用于IOS的映像,对于android他们正在以base64格式提供正确的字符串。我可以将其转换为图像。但是在IOS中他们给我一个字符串,就像这个/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAGhKADAAQAAAABAAAJxAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs一样。在这个字符串中包含一些空格,我已经删除了它,

string images = model.RequestObject.UserImage.ToCharArray().Where(c=>!Char.IsWhiteSpace(c)).Select(c => c.ToString()).Aggregate((a, b) => a + b);

将字符串转换为图像时,抛出类似字符串的错误消息不是base64格式。这就是我转换它的方式

File.WriteAllBytes(StoragePath, Convert.FromBase64String(model.RequestObject.UserImage));
                model.RequestObject.UserImage = FileName;

我曾尝试过这样的

var bytes = Convert.FromBase64String(resizeImage.Content); using (var imageFile = new FileStream(filePath, FileMode.Create)) { imageFile.Write(bytes ,0, bytes.Length); imageFile.Flush(); }

但我的api说它不是有效的字符串。 有人可以帮我解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:1)

尝试像这样编码

let utf8str = yourString.dataUsingEncoding(NSUTF8StringEncoding)
let base64Encoded = utf8str.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromRaw(0)!)

希望这会有所帮助。