flask 实现上传图片并缩放作为头像的例子
个人开发的flask论坛进入尾声,还剩最后一个上传图片更换头像功能,搞了一整天,最后终于解决了所有问题,现在记录下解决方案。
1.上传文件
分析一下更换头像功能,我们需要做哪些事,简单的思路是:上传文件,获取文件的url。
文件上传的基本原理实际上很简单,基本上是:
一个带有enctype=multipart/form-data的
2.创建略缩图
接下来我们需要有路由到这个页面的视图函数,服务器后台端的代码如下:
@main.route('/edit-avatar',methods=['GET','POST']) @login_required defchange_avatar(): ifrequest.method=='POST': file=request.files['file'] size=(40,40) im=Image.open(file) im.thumbnail(size) iffileandallowed_file(file.filename): filename=secure_filename(file.filename) im.save(os.path.join(main.static_folder,'avatar',filename)) current_user.new_avatar_file=url_for('main.static',filename='%s/%s'%('avatar',filename)) current_user.is_avatar_default=False flash(u'头像修改成功') returnredirect(url_for('.user',username=current_user.username)) returnrender_template('change_avatar.html')
这里main是一个blueprint,file=request.files['file']语句获得图片文件对象,将其转换为Image对象,通过thumbnail方法进行略缩。
最后im.save(os.path.join(main.static_folder,'avatar',filename))语句将略缩图片保存到服务指定路径。
以上这篇flask实现上传图片并缩放作为头像的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。