我是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([])。我尝试了许多解决方案,但没有人为我工作。...
很抱歉这个问题,但是问题出在我的jquery(ajax)代码中此一个