Python 如何在flask中显示mysql数据库中的任何文件,如pdf、文本、文档
我想显示此数据库中的文件。我已将此文件保存到系统文件夹中。在这里,我执行了一个下载文件的场景,但我想显示一个像谷歌硬盘一样的文件,在那里他们可以下载并显示一个文件 这是我的数据库文件:- 这里是我刚下载的文件:- 我想在屏幕上显示该类型的文件:- 我的代码:- 插入代码:-Python 如何在flask中显示mysql数据库中的任何文件,如pdf、文本、文档,python,mysql,flask,mysql-python,file-handling,Python,Mysql,Flask,Mysql Python,File Handling,我想显示此数据库中的文件。我已将此文件保存到系统文件夹中。在这里,我执行了一个下载文件的场景,但我想显示一个像谷歌硬盘一样的文件,在那里他们可以下载并显示一个文件 这是我的数据库文件:- 这里是我刚下载的文件:- 我想在屏幕上显示该类型的文件:- 我的代码:- 插入代码:- @app.route('/crassign',methods=['POST']) def crassign(): if g.email: if request.method=='POST':
@app.route('/crassign',methods=['POST'])
def crassign():
if g.email:
if request.method=='POST':
file=request.files['inputFile']
filename=secure_filename(file.filename)
name = request.form.get('name')
sname = request.form.get('sname')
stitle = request.form.get('stitle')
email = request.form.get('email')
Tid = request.form.get('Tid')
pdpart = request.form.get('pdpart')
ddate = request.form.get('ddate')
sdate = request.form.get('sdate')
amark = request.form.get('amark')
sem = request.form.get('sem')
adescription = request.form.get('adescription')
if file and allowed_file(file.filename):
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
newassign=Crassignment(stitle=stitle,Tid=Tid,pdpart=pdpart,sem=sem,sname=sname,name=name,email=email,file=file.filename,sdate=sdate,ddate=ddate,adescription=adescription,amark=amark,data=file.read())
db.session.add(newassign)
db.session.commit()
flash('Assignment Successfully created')
return redirect(url_for('createassignment'))
else:
flash('Invalid Uplaod only txt, pdf, doc,docx')
return redirect(url_for('createassignment'))
return redirect(url_for('teacherlogin'))
此下载文件代码:-
@app.route('/down/<file>', methods = ['GET'])
def down(file):
if g.email:
cur = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
result=cur.execute('select * FROM crassignment WHERE file = %s',(file,))
data = cur.fetchall()
cur.close()
file_path = UPLOAD_FOLDER + file
return send_file(file_path, as_attachment=True, attachment_filename='')
#return send_file(BytesIO(data.data),as_attachment=True,attachment_filename=data.file)
return redirect(url_for('login'))
主要使用iframe在web浏览器中显示文件预览,而不是下载文件。如果您的文件类型类似于office,则可以签出此文件。