将图像blob从Ajax上传到Django
我正在尝试使用Ajax将图像上传到Django。
Ajax代码:
function sendImage() { console.log(blob); var fd = new FormData(); fd.append('image', blob); var tet = $.ajax({ url: '/login/photoverify/', type: 'POST', data: fd, async: false, contentType: false, processData: false, success: function (response) { console.log(response.driverBeacon); document.getElementById('username').setAttribute('value', response.username); }, error: function (error) { console.log(error); } }).responseText; }
Django代码:
def imageVerify(request): if request.method == 'POST': log.info('Inside imageVerify') myform = forms.Form(request.POST, request.FILES) log.info("Done loading form") if myform.is_valid(): log.info(myform.cleaned_data) file = myform.cleaned_data['image']
但是myform.cleaned_data
是空的。 有人可以帮忙吗?
您尚未将request.FILES
传递给表单实例化。
myform = forms.Form(request.POST, request.FILES)
您可能还需要在$.ajax()
调用中设置contentType: 'multipart/form-data'
。
解决了:
def imageVerify(request): if request.method == 'POST': log.info('Inside imageVerify') myform = forms.Form(request.POST, request.FILES) log.info("got Myform") file = myform.files['image']