+import os
+from flask import Flask, flash, request, redirect, url_for
+from werkzeug.utils import secure_filename
+
+UPLOAD_FOLDER = "/tmp/"
+ALLOWED_EXTENSIONS = {"txt", "pdf", "png", "jpg", "jpeg", "gif"}
+
+app = Flask(__name__)
+app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER
+
+
+def allowed_file(filename):
+ return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS
+
+
+@app.route("/", methods=["GET", "POST"])
+def upload_file():
+ if request.method == "POST":
+ # check if the post request has the file part
+ if "file" not in request.files:
+ return redirect(request.url)
+ file = request.files["file"]
+ # if user does not select file, browser also
+ # submit an empty part without filename
+ if file.filename == "":
+ return redirect(request.url)
+ if file and allowed_file(file.filename):
+ filename = secure_filename(file.filename)
+ file.save(os.path.join(app.config["UPLOAD_FOLDER"], filename))
+ return redirect(url_for("uploaded_file", filename=filename))
+
+ return """
+ <!doctype html>
+ <title>Upload new File</title>
+ <h1>Upload new File</h1>
+ <form method=post enctype=multipart/form-data>
+ <input type=file name=file>
+ <input type=submit value=Upload>
+ </form>
+"""