Javascript 将图像blob从Ajax上传到Django
我正在尝试使用Ajax将图像上传到Django Ajax代码:Javascript 将图像blob从Ajax上传到Django,javascript,jquery,python,ajax,django,Javascript,Jquery,Python,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:
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\u数据为空。有人能帮忙吗?您还没有将request.FILES
传递到表单实例化
myform = forms.Form(request.POST, request.FILES)
您可能还需要在$.ajax()
调用中设置contentType:'multipart/form data'
。您尚未将请求.FILES
传递给表单实例化
myform = forms.Form(request.POST, request.FILES)
您可能还需要在$.ajax()
调用中设置contentType:“多部分/表单数据”
。解决:
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']
已解决:
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']
如果我同时更改contentType和表单实例化,代码将挂起在myform=forms.form(request.POST,request.FILES)行。如果我不更改内容类型,表单将为空。你是什么意思,它挂起?您是否收到任何类型的错误?信息:usermanagement.user:退出登录视图和执行时间0.0342240333557(2018-01-05 08:25:34;user.py:71)信息:usermanagement.user:内部图像验证(2018-01-05 08:25:41;user.py:346),然后程序挂起。没有打印任何内容。谢谢。这把我从一只愚蠢的虫子里救了出来。另外,我建议contentType:false
。如果同时更改contentType和表单实例化,代码将挂起在myform=forms.form(request.POST,request.FILES)行。如果我不更改内容类型,表单将为空。你是什么意思,它挂起?您是否收到任何类型的错误?信息:usermanagement.user:退出登录视图和执行时间0.0342240333557(2018-01-05 08:25:34;user.py:71)信息:usermanagement.user:内部图像验证(2018-01-05 08:25:41;user.py:346),然后程序挂起。没有打印任何内容。谢谢。这把我从一只愚蠢的虫子里救了出来。另外,我建议contentType:false
。