diff --git a/static/content/glit_background.gif b/static/content/glit_background.gif new file mode 100644 index 0000000..5124017 Binary files /dev/null and b/static/content/glit_background.gif differ diff --git a/static/content/prompt.wav b/static/content/prompt.wav new file mode 100644 index 0000000..6d3ecb0 Binary files /dev/null and b/static/content/prompt.wav differ diff --git a/templates/upload.html b/templates/upload.html new file mode 100644 index 0000000..fcacef4 --- /dev/null +++ b/templates/upload.html @@ -0,0 +1,20 @@ + + + + + + Perma-Upload a picture + + +
+ {{ imageuploadform.csrf_token }} +
+ {{ imageuploadform.image.label }} + {{ imageuploadform.image }} + {% for message in imageuploadform.image.errors %} +
{{ message }}
+ {% endfor %} +
+ {{ imageuploadform.submit }} +
+ diff --git a/upload.py b/upload.py new file mode 100644 index 0000000..dc6439c --- /dev/null +++ b/upload.py @@ -0,0 +1,43 @@ +import os +from flask import Flask, render_template, redirect, request +from flask_wtf import FlaskForm +from flask_wtf.file import FileAllowed, FileField +from wtforms import ( + SubmitField, +) + +# config me here +APP = Flask(__name__, static_folder="static") +APP.config["IMAGE_FOLDER"] = "static/images" +ALLOWED_FILES = ["jpg", "png", "gif", "webp"] + +# don't config these lines +APP.config["SECRET_KEY"] = os.urandom(24) + +class ImageUploadForm(FlaskForm): + """Image upload form.""" + image = FileField( + "Upload an image:", + validators=[FileAllowed(ALLOWED_FILES, "Images only!")], + ) + submit = SubmitField("Submit") + + +def saveimage(image): + """Save the image to the folder""" + image.save(os.path.join(APP.config["IMAGE_FOLDER"], image.filename)) + + +@APP.route("/", methods=["GET", "POST"]) +def index(): + """Upload route, a page to upload an image""" + imageuploadform = ImageUploadForm() + if request.method == "POST": + if imageuploadform.validate_on_submit(): + saveimage(imageuploadform.image.data) + return render_template("upload.html", imageuploadform=imageuploadform) + + +if __name__ == "__main__": + APP.debug = True + APP.run(port=5000)