2017-02-15 51 views
2

試圖獲取用戶本地上傳的圖像的base64字符串。 我的html代碼是 -我想獲得圖像的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 

我收到錯誤

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://(或https://)至路徑。

編輯您的路徑,以http://開頭,它應該工作。