Отправить файл изображения из html в Flask и сохранить его в моей системе

#javascript #html #sqlite #flask

#javascript #HTML #sqlite #flask

Вопрос:

Я разрабатываю веб-страницу для загрузки блогов с обложкой изображения. Я хочу загрузить файлы изображений с HTML-страницы в flask и сохранить их в своей системе. Я пробовал код для этого, но каждый раз, когда я запускаю код, он показывает мне 500 внутренних ошибок сервера. Кто-нибудь может мне с этим помочь.

Это мой HTML-файл — addblog.html

   <form action="/addblog" method="post" enctype="multipart/form-data">

    <div>
      <label for="image_uploads" class="btn btn-primary">Upload Cover Image (PNG, JPG)</label>
      <input type="file" id="image_uploads" name="image_uploads" accept=".jpg, .jpeg, .png">
    </div>
    <div class="preview">
      <p>No files currently selected for upload</p>
    </div><br>

    <div class="form-group">
      <label for="exampleFormControlTextarea1">Content</label>
      <textarea class="form-control" id="exampleFormControlTextarea1" name="content" rows="10" cols="80"></textarea>
    </div>

    <button type="submit" class="btn btn-primary">Upload</button>
  </form>
  

Это мой файл flask.

     from flask import Flask, session, render_template, request, redirect
    from flask_session import Session
    from cs50 import SQL
    from tempfile import mkdtemp
    from werkzeug.security import check_password_hash, generate_password_hash
    from werkzeug.utils import secure_filename


    from helpers import login_required, convertToBinaryData, insertBLOB

    import sqlite3
    import os


    app = Flask(__name__)


    app.config["IMAGE_UPLOADS"] = "/home/ubuntu/FINAL_PROJECT/Blog_webapp/static/images/uploads"

    # Configure session to use filesystem (instead of signed cookies)
    app.config["SESSION_FILE_DIR"] = mkdtemp()
    app.config["SESSION_PERMANENT"] = False
    app.config["SESSION_TYPE"] = "filesystem"
    Session(app)

    # Configure CS50 Library to use SQLite database
    db = SQL("sqlite:///blog.db")

    @app.route("/addblog", methods=["GET", "POST"])
    @login_required
    def add():
        if request.method == "GET":
             return render_template("addblog.html")
        else:
             image2 = request.files["image_uploads"]
             image2.save(os.path.join(app.config["IMAGE_UPLOADS"], image2.filename))
             content = request.form.get("content")

             print(image,content)
             insertBLOB(session["user_id"], image, content)

             return render_template("addblog.html")
  

Это фрагмент моего терминала. введите описание изображения здесь

Комментарии:

1. Вам нужно показать нам полную обратную трассировку.

2. Один быстрый совет всегда сохраняйте debug=True при разработке приложения, чтобы вы могли видеть ошибки.

3. Я добавил трассировку кода, отладчик. Но проблема в том, что когда страница загружается, когда я нажимаю кнопку Отправки, она не отправляет данные в метод POST action. Он застрял, я не могу определить проблему.