• form serialize获取不到上传文件数据解决办法


    表单提交,使用form的serialize来给数据进行序列化斌提交,发现上传文件获取不到,原因是这种方式处理表单时所适用的input标签类型是有限的,只适用于一些常用的类型例如text、checkbox、select、date等等,但是对于file文件类型的input框并不适用。

    解决办法:通过获取form对象来解决 new FormData($('.Oform')[0])

    代码:

    (html)


              
              <form class="Oform" method="post" enctype="multipart/form-data"><!--由<form>表单构造的FormData对象,声明属性enctype="multipart/form-data"-->
               <input type="type" name="e_id"> 

               <input class="Ofile" accept=".xls,.xlsx" name="fileXls" type="file" />
             </form>
                $('.Ofile').on('change',function(){
                    $.ajax({
                        url :"url",
                        type : "POST",
                        data : new FormData($('.Oform')[0]),
                        cache: false,//cache设置为false,上传文件不需要缓存
                        processData: false,//因为data值是FormData对象,不需要对数据做处理
                        contentType: false,//<form>表单构造的FormData对象,且已经声明了属性enctype="multipart/form-data",所以这里设置为false
                        success : function(data) {
                            console.log(data)
                            var arr=JSON.parse(data)
                            if(arr.status=='1'){
                     //提示插件
                                swal({
                                    title: "导入成功!",
                                    type: "success",
                                    timer: 1000,
                                    showConfirmButton: false,
                                })
                                location=location
                            }else{
                                swal({
                                    title: "导入失败!",
                                    text:arr.msg,
                                    type: "error",
                                    // timer: 1000,
                                    showConfirmButton: true,
                                },function (i) {
                                    if(i){
                                        location=location
                                    }
                                })
    
                            }
                        },
                        error : function(data) {
                        }
                    });
                })
  • 相关阅读:
    数据库事务的四个隔离级别
    synchronized与Lock的区别
    线程池的注意事项
    守护线程与非守护线程
    wait与sleep的区别
    String,StringBuffer,StringBuilder
    2019牛客暑期多校训练营 第二场
    2019牛客暑期多校训练营 第一场
    Codeforces Round #568 (div. 2)
    Codeforces Round #570 (Div. 3)
  • 原文地址:https://www.cnblogs.com/TLSF/p/9946454.html
Copyright © 2020-2023  润新知