2017-02-15 11 views
2

画像のbase64文字列を取得しようとしましたが、これはユーザーがローカルにアップロードしました。 私のhtmlコードは、IS-画像のbase64文字列を取得しようとしています

<div class="col-md-4"> 
     <label class="control-label"></label> 
     <input type="file" name="galleryImage" class="filestyle" data-buttonText="Select a Image"> 
     <input class="btn btn-sm btn-info btn-block" name="getImageUrl" type="submit" Style="width: 100px;"> 
</div> 

と私の意見で

galleryImageURL = request.POST.get('galleryImage') 
print(galleryImageURL) 
galleryImage = requests.get(galleryImageURL).content 
print(galleryImage) 
base64EncodedImageString = imageBase64Encode(galleryImage) 
print(base64EncodedImageString) 

def imageBase64Encode(galleryImage): 
    with open(galleryImage, "rb") as image_file: 
     encoded_string = base64.b64encode(image_file.read()) 
    return encoded_string 

私は何スキーマはあなたがhttp://(またはhttps://)を供給する必要があることを意味しないエラー

Invalid URL '763814bc03a9838a7bae23ad4867ec01.jpg': No schema supplied. Perhaps you meant http://763814bc03a9838a7bae23ad4867ec01.jpg? 
+0

イメージが保存されている一時ディレクトリを取得し、それに基づいてフルパスを作成する必要があります。私は頭の上からそれをどうやって行うのか覚えていません、残念ですが、それは問題です。おもう。 – Eamonn

答えて

1

ここでgalleryImageはファイルインスタンスであり、URLではありません。 あなたはそれを間違って読んでいます。

これをあなたの視点で試してみてください。

galleryImage = request.FILES['galleryImage'].read() 
base64string = base64.encodestring(galleryImage) 

あなたのフォームにenctype="multipart/form-data"を追加することを忘れないでください。

+0

'' NoneType 'オブジェクトに属性' read''がありません。 – mymail

+0

最初の行が更新されました。今すぐお試しいただけますか? –

+0

その作業.... – mymail

1

を取得していますパス。

パスをhttp://で始めるように編集するとうまくいくはずです。