Как добиться загрузки файла с помощью Fetch API из Javascript и Flask - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу загрузить файл, используя Fetch API Javascript.Я использую конечную точку, которую я закодировал во Flask с помощью Python. Я пытался использовать API выборки, но получаю внутреннюю ошибку 500 (внутренняя ошибка сервера). Затем я попытался использовать Ajax-версию загрузки файлов, которая работает нормально. Но я хочукод в Vanilla JS.

Это index.html

<form id="upload-file" method="post" enctype="multipart/form-data">
    <fieldset>
        <label for="file">Select a file</label>
        <input name="file" type="file">
    </fieldset>
    <fieldset>
        <button id="upload-file-btn" type="button">Upload</button>
    </fieldset>
</form>

Это app.js

$(function() {
    $('#upload-file-btn').click(function() {
        var form_data = new FormData($('#upload-file')[0]);
        $.ajax({
            type: 'POST',
            url: '/uploadajax',
            data: form_data,
            contentType: false,
            cache: false,
            processData: false,
            success: function(data) {
                console.log('Success!');
            },
        });
    });
});

Это конечная точка в загрузке файлов Flask.py

from flask import Flask, render_template, request
from werkzeug import secure_filename
app = Flask(__name__)

@app.route('/uploader', methods = ['GET', 'POST'])
def upload_file():
   if request.method == 'POST':
      f = request.files['file']
      f.save(secure_filename(f.filename))
      return 'file uploaded successfully'

if __name__ == '__main__':
   app.run(debug = True)

Как сделать такой же запрос ajax с fetch api?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...