2017-07-01 4 views
0

私のウェブサイトにイメージをレンダリングしようとしていますが、動作しません(ファイルアイコンが壊れているだけです)。私が間違っていることを教えてください。Flask-SQLAlchemyからイメージをレンダリングする方法は?

私は画像をアップロードする方法方法:ここでは

@app.route('/UploadImages') 
def UploadImages(): 
    return render_template('UploadImages.html') 


@app.route('/uploadImages', methods=['POST']) 
def uploadImages(): 
    name = current_user.USERNAME 
    file = request.files['inputFile'] 
    newFile=IMAGES(
     NAME=file.filename, 
     USERNAME=name, 
     DATA=file.read() 
    ) 
    db.session.add(newFile) 
    db.session.commit() 

    return 'Saved ' + file.filename + 'to the database !' 

は私のdbテーブルです:

class IMAGES(db.Model): 
    ID = db.Column(db.Integer,primary_key=True) 
    NAME = db.Column(db.String(300),unique=True) 
    DATA = db.Column(db.BLOB) 
    USERNAME = db.Column(db.String(15)) 

私は、ファイルが、私が使用している場合ので、正しくアップロードされていることを確信している:

@app.route('/download') 
def download(): 
    file_data = IMAGES.query.filter_by(USERNAME='test1').first() 

    return send_file(BytesIO(file_data.DATA), 
attachment_filename='test.jpg',as_attachment=True) 

画像が壊れることはありません。

@app.route('/image') 
def image(): 
    file_data = IMAGES.query.filter_by(USERNAME='test1').first() 
    image = b64encode(file_data.DATA) 
    return render_template('Image.html',data=list,image=image) 

とウェブサイト上:

<img src="data:;b64encode,{{ image }}"/> 

答えて

0

<img>データURI data:;base64,{{ image }}なくdata:;b64encode,{{ image }}である必要があり、私はファイルをレンダリングしようとする方法

+0

私は 'img src =" data:; base64、{{image}} "/>'を使っていますが、それでも同じです。私は画像オブジェクト(クロムF12)を調べた[リンク](https://1drv.ms/f/s!AvdPsdAoxFQkg61laJUQcoewnz8x6g)私は問題が変換であると思う(BLOB - >画像) –

+1

私は 'image = base64 .b64encode(file_data.DATA).decode( 'ascii') 'とそれは動作します:) –

関連する問題