2017-04-30 7 views
0

クライアント側ではイメージファイルを読み込み、base64でエンコードしてURLパラメータとして送信しています。paramとして送信されたbase64文字列がサーバー側でデコードされた後に長さが変わるのはなぜですか?

img = open("file.png", "rb").read() 
print len(img) 
img = img.encode("base64") 
print len(img) 
print len(img.decode("base64")) 

プリント252235340742252235

受信側では、受信したstrで同じ結果が得られませんでした。私はコード化されたbase64を "http://url.com/test?image=img_str"として掲示しています。まったく問題あり、実際に元の長さでなければなりません248176

img = flask.request.args["image"] 
print len(img) 
img = img.decode("base64") 
print len(img) 

プリント340742。投稿のリクエスト中にイメージのパラメータが変更されていますか?どのように要求やその他のソリューションでファイルparamを使用せずにこれを行う。

答えて

0

だから、私はこれを理解しました!

エンコードされた文字列をURLパラメータとして送信する際、文字列の「+」が「」に変換されています。だから、復号化する前にencoded_base64.replace(" ", "+")にしていた。そしてそれは働いた!

関連する問題