2016-03-28 13 views
3

現在、私は自分のプロジェクトでイメージをアップロードするためにバックエンドにイメージを送信しようとしています。私はスタックオーバーフローや他の場所ですべての可能な答えを見てきましたが、データをバックエンドに正常に送ることができません。私が送信しても、何らかの問題(おそらく私が感じる白いスペースのため)のために、バックエンド側でデコードされたイメージが適切なフォーマットになっていません。イメージをbase64Stringとして符号化する適切な方法

コードをエンコードするために - 今すぐ

let imageData1 : NSData = UIImageJPEGRepresentation(slctdImage, 0.1)! 
     let base64StringNew1 = imageData1.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 

のintresting一部 -

私はローカルSWIFTコードを使用していることをデコードし、私は画像を取得し、私ができることはしていますイメージビューで表示します。しかし、私は任意のオンラインbse64コンバータで変換すると、同じ文字列、私は結果を取得しません。

復号化のために使用されるコード -

let decodedData = NSData(base64EncodedString:base64StringNew1, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) 

だから何が私の問題かもしれません。 base64Stringを使用してバックエンドに画像をアップロードする正しい方法をお勧めしますか?

答えて

0

http://codebeautify.org/base64-to-image-converterにチェックこの

func encodeImage(dataImage:UIImage) -> String{ 
    let imageData = UIImagePNGRepresentation(dataImage) 
    return imageData!.base64EncodedStringWithOptions([]) 
} 

で試してみて、画像符号化のためのコードの下には

0

に動作します。

let image: UIImage = imgProfilePic.image! 

    let size = CGSizeApplyAffineTransform(image.size, CGAffineTransformMakeScale(0.3, 0.3)) 
    let hasAlpha = false 
    let scale: CGFloat = 0.0 // Automatically use scale factor of main screen 

    UIGraphicsBeginImageContextWithOptions(size, !hasAlpha, scale) 
    image.drawInRect(CGRect(origin: CGPointZero, size: size)) 

    let scaledImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    var imageData = UIImageJPEGRepresentation(scaledImage, 0.9) 
    var base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) // encode the image 

    var cd = CoreDataUser(pstrContext: "this") 

    var params = "strUsername=" + cd.getUsername() 
    params = params + "&strPassword=" + cd.getPassword() 
    params = params + "&blbProfilePic=" + base64String 

base64文字列がデコードされてブラウザに表示されるPHPコード。

if ($rows) { 
    foreach ($rows as $row) { 
    $data = base64_decode($row["fblbProfilePic"]); 
    $image = imagecreatefromstring($data); 
    header('Content-Type: Image/jpeg'); 
    imagejpeg($image); 
//file_put_contents("test.jpg", $data); 
//var_dump($data); 

    //echo base64_decode($row["fblbPicture"]); 
    / /echo '<img src="data:image/jpg;base64,' . $row["fblbPicture"]  . '" />'; 
    } 
関連する問題