beatescheibel 5 rokov pred
rodič
commit
308d773d0e
2 zmenil súbory, kde vykonal 40 pridanie a 19 odobranie
  1. 7 0
      app/templates/show_image.html
  2. 33 19
      app/views.py

+ 7 - 0
app/templates/show_image.html

@@ -0,0 +1,7 @@
+<!doctype html>
+<title>Hello from Flask</title>
+{% if filename %}
+  <h1>some text <img src="{{ url_for('send_file', filename=filename) }}">more text!</h1>
+{% else %}
+  <h1>no image for whatever reason</h1>
+{% endif %}

+ 33 - 19
app/views.py

@@ -1,6 +1,9 @@
 from app import app
-from flask import render_template
-from flask import request, redirect
+import os
+from flask import Flask, request, redirect, url_for, send_from_directory, render_template
+UPLOAD_FOLDER = '/Users/beatescheibel/Desktop/flask/uploads'
+app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER
+ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
 
 
 @app.route("/")
@@ -8,23 +11,34 @@ def index():
     return render_template("index.html")
 
 
-@app.route("/upload-image", methods=["GET", "POST"])
-def upload_image():
-
-    if request.method == "POST":
-
-        if request.files:
-
-            image = request.files["image"]
-
-            print(image)
-
-            return redirect(request.url)
-
-    return render_template("upload_image.html")
-
+def allowed_file(filename):
+    return '.' in filename and \
+           filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
+
+@app.route('/upload', methods=['GET', 'POST'])
+def upload_file():
+    if request.method == 'POST':
+        file = request.files['file']
+        if file and allowed_file(file.filename):
+
+            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 action="" method=post enctype=multipart/form-data>
+      <p><input type=file name=file>
+         <input type=submit value=Upload>
+    </form>
+    '''
 
 @app.route('/show/<filename>')
 def uploaded_file(filename):
-    filename = 'http://127.0.0.1:5000/uploads/' + filename
-    return render_template('template.html', filename=filename)
+    #filename = 'http://127.0.0.1:5000/uploads/' + filename
+    return render_template('show_image.html', filename=filename)
+
+@app.route('/uploads/<filename>')
+def send_file(filename):
+    return send_from_directory(UPLOAD_FOLDER, filename)