Its showing error LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs.
Last few lines when the execution stops are - thumbnail = resize(photo_data, 200, 200) File "/home/anurag/photoshare/app.py", line 406, in resize image_string = StringIO(img.decode('base64')) LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs
begin photo uploading code
photos uploaded using base64 encoding so they can be directly embeded in HTML
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) def allowed_file(filename):`` return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS @app.route('/upload', methods=['GET', 'POST']) @flask_login.login_required def upload_file(): if request.method == 'POST': uid = getUserIdFromEmail(flask_login.current_user.id) imgfile = request.files['photo'] caption = request.form.get('caption') album_id = request.form.get('album') tags = request.form.get('tags') photo_data = base64.standard_b64encode(imgfile.read()) thumbnail = resize(photo_data, 200, 200) cursor = conn.cursor() cursor.execute("INSERT INTO Photos (imgdata, thumbnail, user_id, caption, album_id) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')".format(photo_data, thumbnail, uid, caption, album_id)) conn.commit() picture_id = cursor.lastrowid print (picture_id) print (tags) insert_tags(picture_id, tags) return redirect( url_for('get_album', id=album_id)) #The method is GET so we return a HTML form to upload the a photo. else: return render_template('upload.html', loggedin=True, albums=get_all_album_data())end photo uploading code
resizes if greater than (x,y) else returns original
def resize(img, x,y): image_string = StringIO(img.decode('base64')) with Image.open(image_string) as image: if image.size[0] > 200 and image.size[1] > 200: cover = resizeimage.resize_cover(image, [x,y]) buffer = StringIO() cover.save(buffer, format="JPEG") return base64.b64encode(buffer.getvalue()) else: return imgThen there is another filefor image. from PIL import Image from io import StringIO from resizeimage import resizeimage import os, base64
def resize(img, x,y): image_string = StringIO(img.decode('base64')) ``with Image.open(image_string) as image: if image.size[0] > 200 and image.size[1] > 200: cover = resizeimage.resize_cover(image, [x,y]) return base64.standard_b64encode(cover) else: return img``You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a9dafe13-12eb-4be4-bce9-e813854168d1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment