问答

使用django和jquery异步上传文件后台获取不到数据?

作者:admin 2021-05-15 我要评论

我这是那写错了后台获取不到数据呢? script $(function () { $('#number').click(function () { var form_info = new FormData(); var fileinfo = $('[name=upl...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我这是那写错了后台获取不到数据呢?

<script>
 $(function () {
        $('#number').click(function () {
            var form_info = new FormData();
 var fileinfo = $('[name=upload]'); //获取文件对象
 var file_obj=fileinfo[0].files[0]; //1种方式获取文件内容
 //var file_obj = $('[name=upload]')[0].files[0]; //2种方式获取文件内容
 //这里FormData是一个jquery对象,用来绑定values对象,也可以用来上传二进制文件,有了他就可以不用form表单来上传文件了
 var uesrName=$('[name=userName]').val() /*获取用户名*/
 var userPsw=$('[name=userPsw]').val()/*获取密码*/
 var box=$('[name=box]').val() /*获取记住用户名*/
 var check=$('[name=check]').val() /*获取验证码*/
 var csr=$('[name=csrfmiddlewaretoken]').val()
            // var datas = $('#form1').serialize()/*序列化表单对象(获取表单内容,以这种方式展现userName=用户输入的内容&userPsw=用户输入的内容)*/
 form_info.append('userPsw',userPsw);
 form_info.append('uesrName',uesrName);
 form_info.append('box',box);
 form_info.append('check',check);
 form_info.append('csrf',csr);
 // form_info.append('file_obj',file_obj);
 //image_info.append('csrfmiddlewaretoken',csrf_data); //获取防止身份伪造跨域名攻击内容
 $.ajax({
                processData: false, /*不处理数据*/
 contentType: false, /*不设置内容类型*/
 // headers: {
 //         "X-CSRFToken": $.cookie('csrftoken')  // Django 403处理
 //     },
 url: '/login_check', /*请求地址*/
 type: 'post', /*请求方式*/
 data: form_info, /*发送的数据内容*/
 datatype: 'json',/* 请求数据返回的类型*/
 success: function (data) { /*返回请求信息*/
 // if (data.info == 1) {
 //     window.location.replace('/direct')//1.页面重定向
 //     // window.location.href="url" //2.页面重定向
 // } else if (data.info == 0) {
 //     alert('密码错误')
 // } else if (data.info == 2) { //     alert('用户名不能为空')
 // } else if (data.info == 3) { //     alert('验证码错误')
 // } }
            })
        })
    })
</script>
<body>
<form action="" method="post" datatype="multipart/form-data">
 {% csrf_token%} <!--防止身份伪造跨域名攻击。 Django 默认开启防护-->
 用户名:<input type="text" name="userName" value='{{userName}}'><br>
 密码:<input type="text" name="userPsw"><br>
 <input type="checkbox" name="box">记住用户名<br>
 验证码:<input type="text" name="check"><img src='/verify_code'/><br>
 <span style="width: 10px; height: 10px; display: block"></span>
 <input type="file" name="upload" id="upload" /><br>
 <span style="width: 10px; height: 10px; display: block"></span>
 <input id="number" type="button" value="发送ajax请求">
</form>
def login_check(request):
    userName = request.POST.get('uesrName')
    print(userName)
    userPsw = request.POST.get('userPsw')
    box = request.POST.get('box')  # 获取复选框
    check = request.POST.get('check')  # 获取验证码
 #这里的image_info拿到了文件的对象,这个对象包含了文件的名字,二进制内容
 image_info=request.FILES.get('file_obj')
###

file_obj 没 append 进去呀

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问下prometheus怎么进行自定义的按业

    请问下prometheus怎么进行自定义的按业

  • 节流函数为什么,点击无效,监听窗口大

    节流函数为什么,点击无效,监听窗口大

  • express访问静态资源失败

    express访问静态资源失败

  • IE 浏览器下 match 方法报错

    IE 浏览器下 match 方法报错

腾讯云代理商
海外云服务器