Esempio n. 1
0
def change_icon():
    form = IconForm()
    if form.validate_on_submit():
        # 生成随机的文件名
        suffix = os.path.splitext(form.icon.data.filename)[1]
        name = rand_str() + suffix
        # 保存上传头像
        photos.save(form.icon.data, name=name)
        # 生成缩略图
        pathname = os.path.join(
            os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'], name))
        img = Image.open(pathname)
        img.thumbnail((64, 64))
        img.save(pathname)
        # 删除原有头像
        if current_user.icon != 'default.jpg':
            # 第一次更换头像不删除,除此之外原来的头像都要删除
            os.remove(
                os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                             current_user.icon))
        # 更新新的头像名至数据库
        current_user.icon = name
        db.session.add(current_user)
        flash('头像已更换')
    return render_template('user/change_icon.html', form=form)
Esempio n. 2
0
def icon():
    form = IconForm()
    if form.validate_on_submit():
        #生成随机的文件名
        suffix = os.path.splitext(form.icon.data.filename)[1]
        filename = random_string() + suffix
        #保存文件
        photos.save(form.icon.data, name=filename)
        #拼接完整的路径名
        pathname = os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                                filename)
        #生成缩略图
        img = Image.open(pathname)
        #设置图片大小
        img.thumbnail((128, 128))
        #重新保存
        img.save(pathname)
        #删除原来的头像,默认的除外
        if current_user.icon != 'default.jpg':
            os.remove(
                os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                             current_user.icon))
        #保存到数据库
        current_user.icon = filename
        db.session.add(current_user)
        flash('头像已修改')
    #获取头像的url
    img_url = photos.url(current_user.icon)
    return render_template('user/icon.html', form=form, img_url=img_url)
Esempio n. 3
0
def change_icon():
    form = IconForm()
    if form.validate_on_submit():
        # 获取上传文件的后缀
        suffix = os.path.splitext(form.icon.data.filename)[1]
        # 生成随机的文件名
        name = rand_str() + suffix
        photos.save(form.icon.data, name=name)
        # 生成固定大小的缩略图
        pathname = os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                                name)
        # 打开文件
        img = Image.open(pathname)
        # 设置尺寸
        img.thumbnail((256, 256))
        # 保存缩略图
        img.save(pathname)
        # 删除原来的头像,default.jpg除外
        if current_user.icon != 'default.jpg':
            os.remove(
                os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                             current_user.icon))
        # 保存到数据库中
        current_user.icon = name
        db.session.add(current_user)
        flash('头像已修改')
    return render_template('user/change_icon.html', form=form)
Esempio n. 4
0
def icon():
    form = IconForm()
    # 取出对象
    user = current_user._get_current_object()
    # 判断数据是否合法
    if form.validate_on_submit():
        # 生成随机文件名
        suffix = os.path.splitext(form.icon.data.filename)[1]
        filename = random_str() + suffix
        # 保存文件
        photos.save(form.icon.data, name=filename)
        # 生成文件名的绝对路径
        pathname = os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                                filename)
        # 生成缩略图
        image = Image.open(pathname)
        # 修改大小
        image.thumbnail((128, 128))
        image.save(pathname)
        # 删除原头像
        if user.icon != 'default.jpg':
            os.remove(
                os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                             user.icon))
        # 赋值给icon 属性
        user.icon = filename
        db.session.add(user)
        # 提示用户修改成功
        flash('头像修改成功')
    # 返回URL 路径
    img_url = photos.url(user.icon)
    return render_template('users/icon.html', form=form, img_url=img_url)
Esempio n. 5
0
def icon():
    form = IconForm()
    if form.validate_on_submit():
        # 获取上传的图片
        suffix = os.path.splitext(form.icon.data.filename)[1]
        # 生成随机文件名
        filename = random_string() + suffix
        # 保存文件
        photos.save(form.icon.data, name=filename)
        # 生成缩略图
        pathname = os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                                filename)
        img = Image.open(pathname)
        # 处理
        img.thumbnail((128, 128))

        # 再保存
        img.save(pathname)
        # 之前老的图片要删除,除了默认图片
        if current_user.icon != 'default.jpg':
            os.remove(
                os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'],
                             current_user.icon))

        # 把文件名存到数据库
        current_user.icon = filename
        db.session.add(current_user)
        flash('头像上传成功')
    img_url = photos.url(current_user.icon)
    return render_template('user/icon.html', form=form, img_url=img_url)
Esempio n. 6
0
def setting_icon(request):
    form = IconForm()
    if request.method == 'POST':
        if form.validate(request.form, request.files):
            form.save()
            return redirect(url_for('app/index'))
    return render_to_response('app/setting/icon.html', {'form': form.as_widget()})
Esempio n. 7
0
def modify_icon_form():
    form = IconForm()
    user = User.query.filter_by(id=current_user.id).first()
    if form.validate_on_submit():
        suffix = os.path.splitext(form.icon.data.filename)[1]
        filename = random_string() + suffix
        photos.save(form.icon.data, name=filename)
        user.icon = 'uploads/' + filename
        db.session.commit()
        return 'success'
    return render_template('upload_form.html',
                           form=form,
                           current_user=current_user)
Esempio n. 8
0
def change_icon():
    form = IconForm()
    if form.validate_on_submit():

        suffix = os.path.splitext(form.icon.data.filename)[1]
        name = rand_str() + suffix
        photos.save(form.icon.data, name=name)
        pathname = os.path.join(os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'], name))
        img = Image.open(pathname)
        img.thumbnail((64, 64))
        img.save(pathname)
        if current_user.icon != 'default.jpg':
            os.remove(os.path.join(current_app.config['UPLOADED_PHOTOS_DEST'], current_user.icon))
        current_user.icon = name
        db.session.add(current_user)
        flash('头像已更换')
    return render_template('user/change_icon.html', form=form)
Esempio n. 9
0
def modify_icon():
    form = IconForm()
    return render_template('modify_icon.html',
                           form=form,
                           current_user=current_user)