スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

swiftでUIImageをbase64エンコードして画像アップロード

swiftでUIImageをbase64エンコードして画像アップロードする方法をメモ。

swift側
var image: UIImage = UIImage(named: "img")
var myFile:NSData = UIImagePNGRepresentation(image).base64EncodedDataWithOptions(.Encoding64CharacterLineLength)
var str = ""+NSString(data:myFile, encoding:NSUTF8StringEncoding)!
var iconBase64string = str.stringByReplacingOccurrencesOfString("+", withString:"%2B", options: nil, range: nil)
これで、iconBase64string をサーバー側に送信すればOK。
つまづいたのは、var str = ""+NSString(data:myFile, encoding:NSUTF8StringEncoding)! でNSData → String にするところ。NSStringのままだと、str.stringByReplacingOccurrencesOfString のrange のとこで
Type 'NSRange' does not conform to protocol 'NilLiteralConvertible'
のエラーが出たので、""+ で、Stringにしてる。
サーバー側では、こんな感じ。(PHPの場合)
function post_base64_decode($value)
{
return base64_decode(str_replace(' ', '+', $value));
}
$content = post_base64_decode($_POST['iconBase64string']);
これで$contentをファイルに書き出すなり、DBに保存するなりすればOK。

参考サイト
Swift: Base64 方式でエンコードする
[XCODE] iPhoneで画像をアプリケーション内に保存するには
UIImagePNGRepresentation
Objective-Cで画像をbase64エンコードして、NSStringに変換
Using a Swift String with NSData without NSString
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。