即使我从输入文件中添加名称,我仍然可以从request.files中获得ImmutableMultiDict([])

问题描述 投票:-1回答:1

我是Flask的新手,我尝试使用Ajax上传图像。即使从输入文件中添加名称,我仍然从ImmutableMultiDict([])中获得request.files。我尝试了许多解决方案,但没有人为我工作。

** js-ajax **

$(document).ready(function () {
//alert('ya allah');

$('#upload-file').on('submit', function (event) {

    var formDataRaw = $('#upload-file')[0];
    var form_data = new FormData(formDataRaw);
    $.ajax({
        data: {
            normal: +'',
            anormal: +'',
            r: +'',
            form_data
        },
        type: 'POST',
        url: '/process',
        contentType: false,
        cache: false,
        processData: false,
        async: false
    })
        .done(function (data) {#....some code
        });

    event.preventDefault();

});

});

我也在输入文件中添加了名称。

html面

<form id="upload-file" method="POST" enctype=multipart/form-data>
                <fieldset style="border: none">
                    <div class="mt-2">

                        <label class="file btn btn-outline-gs m-2 my-sm-0 px-4 d_upload">
                            Upload IMG!
                            <input  type="file"
                                    id="imgInp"
                                    name="photo"
                                    class="i_upload"
                                    hidden/>
                        </label>

                    </div>
                </fieldset>

                <fieldset style="border: none">
                <div class="mb-2">
                        <input id="test"
                               type="submit"
                               value="Predect"
                               class="btn btn-outline-gs"
                               onclick="load(this)"/>
                    </div>
                </fieldset>

            </form>

而且我认为代码很干净,但仍然从request.files或带有request.files['input name']的括号中得到了ImmutableMultiDict([]):>

    if 'photo' in request.files:
    photo = request.files['photo']
    if photo.filename != '' and allowed_file(photo.filename):
        photo.save(os.path.join('static/uploads', photo.filename))
        print(photo.filename)
        f = secure_filename(photo.filename)

我是Flask的新手,我尝试使用Ajax上传图像。即使从输入文件添加名称,我仍然可以从request.files获得ImmutableMultiDict([])。我尝试了许多解决方案,但没有人为我工作。...

python ajax flask
1个回答
0
投票

很抱歉这个问题,但是问题出在我的jquery(ajax)代码中此一个

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.