Example #1
0
def upload():
	if request.method == 'POST':
		file = request.files['file']
		if file and allowed_file(file.filename):
			import os
			filename = secure_filename(file.filename)
			filename = current_user.getUserName() + '_' + filename
			# print current_user.getUserName
			filepath = os.path.join(current_app.config['UPLOAD_FOLDER'], filename)
			print filepath
			current_user.setImage_url(filepath)
			file.save(os.path.join(current_app.config['UPLOAD_FOLDER'], filename))
			return redirect(url_for('.uploaded_file', filename = filename))
	return render_template('uploadimage.html')
Example #2
0
def avatar():
    form = AvatarForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            safe_filename = safefilename(form.avatar_url.data.filename)

            # create directory
            upload_url = mkdir(current_app.config['UPLOADDIR'])
            avatar_path = mkdir(os.path.join(upload_url, 'avatar'))
            size150_path = mkdirbysize(avatar_path, size=150)
            date150_path, date_dir = mkdirbydate(size150_path)

            # avatar_url_sql = os.path.join(date_dir, safe_filename)

            im = rim = crop150 = None
            try:
                im = Image.open(form.avatar_url.data)
                width, height = im.size
                nwidth, nheight = thumbnail(width, height, 500.0)
                rim = im.resize((nwidth, nheight), Image.ANTIALIAS)
                logger.info('picture {}, {} has been resize to {} {}'.format(width, height, nwidth, nheight))

                size = (int(form.data.get('x1')), int(form.data.get('y1')), int(form.data.get('x2')), int(form.data.get('y2')))
                crop150 = rim.crop(size).resize((150, 150), Image.ANTIALIAS)
                logger.info('picture has been crop')

                crop150.save(os.path.join(date150_path, safe_filename))
                logger.info('picture has upload successful')
                flash(u'上传头像成功', category='success')
                filepath2 = os.path.join(date150_path, safe_filename)
                current_user.setImage_url(filepath2)
                return redirect('.')
            except:
                logger.error('picture crop and save error')
                flash(u'上传头像失败', category='error')
            finally:
                if crop150:
                    crop150.close()
                if rim:
                    rim.close()
                if im:
                    im.close()
    template_name_or_list = 'uploadimage.html'
    return render_template(**locals())