有没有办法将图像从ajax发送到flask?

问题描述 投票:0回答:1
javascript python ajax flask multipartform-data
1个回答
0
投票

您必须决定是要发送表单数据还是 JSON。两者结合都会失败。

以下示例向您展示如何通过 AJAX 将整个表单发送到服务器。请注意,未设置内容类型且未处理数据。只有这样,表单才会以“multipart/form-data”格式发送,这是上传文件所必需的。

<form name="my-form">
    <fieldset>
        <label for="upload-image">Add Photo</label>
        <input type="file" id="upload-image" name="my-photo" />
    </fieldset>
    <button type="submit">Submit</button>
</form>
$(document).ready(() => {
    $('form[name="my-form"]').submit(function(event) {
        event.preventDefault();
        $.ajax({
            type: 'POST',
            url: '/make_post_ajax',
            data: new FormData(this),
            cache: false,
            contentType: false,
            processData: false,
        }).done(function() {
            console.log('Successful uploaded photo.');
        });
    })
});
@app.post('/make_post_ajax')
def upload():
    file = request.files.get('my-photo')
    if file:
        print(file)
        return ''
    abort(400)

如果您想使用 JSON,我建议在发送之前将图像数据转换为 Base64 字符串。

© www.soinside.com 2019 - 2024. All rights reserved.