2013-12-21 46 views
3

我已經成功地在mongdb中以二進制格式存儲圖像文件。但是當我從mongodb獲取圖像時獲得相同的格式。但是我需要這個圖像文件。如何檢索圖像文件從mongodb到html頁

這是我以前

def retrieve(request): 

    db=pymongo.connection.Connection('localhost',27017).demo1 
    grid=gridfs.GridFS(db) 
    output=grid.get_last_version(filename='shiva.jpg') 
    return HttpResponse(output) 
+0

我有Python中沒有經驗的Web開發但是是否有可能需要將HTTP響應的頭部中的MIME類型設置爲'image/jpeg',以便用戶的Web瀏覽器知道它接收到圖像? – Philipp

+1

希望我在另一個問題的答案可以幫助你。 http://stackoverflow.com/questions/22077720/pymongo-bson-binary-save-and-retrieve/42950170#42950170 – CoderYel

+0

希望我的回答在另一個問題可能會幫助你。 http://stackoverflow.com/questions/22077720/pymongo-bson-binary-save-and-retrieve/42950170#42950170 – CoderYel

回答

2

嗨,我已經成功地插入和使用python的MongoDB檢索圖像的代碼..

def insert_image(request): 
    with open(request.GET["image_name"], "rb") as image_file: 
    encoded_string = base64.b64encode(image_file.read()) 
    print encoded_string 
    abc=db.database_name.insert({"image":encoded_string}) 
    return HttpResponse("inserted") 

def retrieve_image(request): 
    data = db.database_name.find() 
    data1 = json.loads(dumps(data)) 
    img = data1[0] 
    img1 = img['image'] 
    decode=img1.decode() 
    img_tag = '<img alt="sample" src="data:image/png;base64,{0}">'.format(decode) 
    return HttpResponse(img_tag) 
+0

對不起,我是新來的蟒蛇,什麼是「RB」?並且「image_name」指的是我們存儲圖像的可放大的名稱? –