我正在尝试提供其路径存储在sqlalchemy数据库中的个人资料图片。
代码段为:
@employees.route('/upload-picture/<full_name>', methods=['GET', 'POST'])
@login_required
def upload(full_name):
if not current_user.is_employee:
abort(403)
borrower = Borrower.query.filter_by(full_name=full_name).first()
if request.method == 'POST' and 'photo' in request.files:
profile_pic = photos.save(request.files['photo'])
borrower.profile_pic = profile_pic
db.session.add(borrower)
db.session.commit()
return render_template('employees/borrower.html', borrower=borrower)
@employees.route('/uploaded_profile_pic/<filename>')
@login_required
def uploaded_profile_pic(filename):
if not current_user.is_employee:
abort(403)
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
我的模板文件如下:
{% if borrower.profile_pic %}
<img src="{{ url_for('employees.uploaded_profile_pic', filename = borrower.profile_pic)}}" />
{% else %}
<form action="{{url_for('employees.upload', full_name=borrower.full_name)}}" method="POST" enctype="multipart/form-data">
<input type="file" name="photo"><br /><br />
<input type="submit" value="Upload">
</form>
{% endif %}
问题是我在模板上不断出现图像损坏。
答案 0 :(得分:0)
save函数用于将文件永久保存到文件系统,但不会创建路径。您需要创建特定图像的路径并将其另存为属性self.profile_pic = profile_pic
,当{{ borrower.profile_pic }}
访问时,该属性将返回图像路径。
<img src="{{ borrower.profile_pic }}">
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))