Night-Chaser
1/7/2019 - 6:08 PM

Flask file upload part 2

Отображение загружаемого файла на сервер

import os
from flask import Flask, render_template, request, send_from_directory

# app = Flask(__name__, static_folder='images')
app = Flask(__name__)

APP_ROOT = os.path.dirname(os.path.abspath(__file__))


@app.route('/')
def index():
    return render_template('upload.html')


@app.route('/upload', methods=['POST'])
def upload():
    target = os.path.join(APP_ROOT, 'images/')
    print(target)

    if not os.path.isdir(target):
        os.mkdir(target)
    else:
        print("Couldn't create upload directory: {}".format(target))
    print(request.files.getlist('file'))
    for upload in request.files.getlist('file'):
        print(upload)
        print('{} is the file name'.format(upload.filename))
        filename = upload.filename
        destination = '/'.join([target, filename])
        print('Accept incoming file:', filename)
        print('Save it to:', destination)
        upload.save(destination)

    # return send_from_directory('images', filename, as_attachment=True)
    return render_template('complete.html', image_name=filename)


@app.route('/uplod/<filename>')
def send_image(filename):
    return send_from_directory('images', filename)


if __name__ == "__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Complete</title>
</head>
<body>
   Uploaded!
<img src="{{ url_for('send_image', filename=image_name) }} ">
</body>
</html>