Fixed images, now using temp files
This commit is contained in:
parent
cb3b8207f2
commit
7f2e6f1482
33
app.py
33
app.py
@ -2,8 +2,10 @@ import io
|
|||||||
import tempfile
|
import tempfile
|
||||||
import subprocess
|
import subprocess
|
||||||
import requests
|
import requests
|
||||||
from flask import Flask, render_template_string, request, send_from_directory
|
import base64
|
||||||
|
from flask import Flask, render_template_string, request, send_from_directory, session
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
@ -322,6 +324,14 @@ HTML_FORM = '''
|
|||||||
</div>
|
</div>
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
def remove_uploaded_img():
|
||||||
|
path = session.pop('uploaded_img_path', None)
|
||||||
|
if path and os.path.exists(path):
|
||||||
|
try:
|
||||||
|
os.remove(path)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
def bleh_image_from_url(url):
|
def bleh_image_from_url(url):
|
||||||
resp = requests.get(url, stream=True)
|
resp = requests.get(url, stream=True)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
@ -604,13 +614,30 @@ def index():
|
|||||||
userimg = request.files.get("userimg")
|
userimg = request.files.get("userimg")
|
||||||
uploaded_img_bytes = None
|
uploaded_img_bytes = None
|
||||||
if userimg and userimg.filename:
|
if userimg and userimg.filename:
|
||||||
uploaded_img_bytes = userimg.read()
|
# Remove old temp file if present
|
||||||
|
remove_uploaded_img()
|
||||||
|
# Save new file to a temp location
|
||||||
|
with tempfile.NamedTemporaryFile(delete=False, suffix=".catnote") as tmpf:
|
||||||
|
userimg.save(tmpf)
|
||||||
|
tmpf.flush()
|
||||||
|
session['uploaded_img_path'] = tmpf.name
|
||||||
|
tmpf.seek(0)
|
||||||
|
uploaded_img_bytes = tmpf.read()
|
||||||
|
elif 'uploaded_img_path' in session:
|
||||||
|
path = session['uploaded_img_path']
|
||||||
|
if os.path.exists(path):
|
||||||
|
with open(path, "rb") as f:
|
||||||
|
uploaded_img_bytes = f.read()
|
||||||
|
else:
|
||||||
|
# If file was deleted or missing, remove from session
|
||||||
|
session.pop('uploaded_img_path', None)
|
||||||
|
else:
|
||||||
|
remove_uploaded_img()
|
||||||
md = request.form["md"]
|
md = request.form["md"]
|
||||||
image = render(md, uploaded_img_bytes)
|
image = render(md, uploaded_img_bytes)
|
||||||
buf = io.BytesIO()
|
buf = io.BytesIO()
|
||||||
image.save(buf, format="PNG")
|
image.save(buf, format="PNG")
|
||||||
buf.seek(0)
|
buf.seek(0)
|
||||||
import base64
|
|
||||||
img_data = base64.b64encode(buf.getvalue()).decode()
|
img_data = base64.b64encode(buf.getvalue()).decode()
|
||||||
# If print button pressed, send to driver
|
# If print button pressed, send to driver
|
||||||
if "print" in request.form:
|
if "print" in request.form:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user