点击上传文件并发送ajax请求

admin 2021-01-13 19:24:03 637浏览 0评论


<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="UTF-8"> 
 <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script> 
 <title></title> 
</head> 
<body> 


 <button  id="uploadExcel" onclick="uploadExcel()"> 上传文件</button>
<script>
        /*导入Excel*/
        function uploadExcel() {
            /*#load:为按钮,点击后生成一个隐藏的input file标签*/
            $('#uploadExcel').after('<input type="file" id="upload_xls" name="file" style="display:none" onchange ="uploadFile()">');
            document.getElementById("upload_xls").click();
        }

        function uploadFile() {
            //选择文件
            var filePath = $("#upload_xls").val();
            //设置上传文件类型
            if (filePath.indexOf(".xls") != -1 || filePath.indexOf(".xlsx") != -1) {
                var form = new FormData();
                form.append('file', $('#upload_xls')[0].files[0]);
                //上传文件
                $.ajax({
                    url: 'upload_file.php',
                    type: 'post',
                    data: form,
                    cache: false,
                    //阻止Ajax将参数转成成String类型的键值对,需要设置processData属性为false,
                    processData: false,
                    //form的enctype="multipart/form-data"才能上传文件。Ajax的默认编码方式是application/x-www-form-urlencoded
                    contentType: false,

                    success: function (r) {
                        if (r.state == 200) {
                            alert(r.msg);
                        }
                        if (r.state == 300) {//上传文件有错误信息
                            var filename = r.data;
                            if (confirm(r.msg)) {
                                location.href = 'download.do?filename=' + filename;
                            }
                        }
                    }
                });
            } else {
                alert("请选择正确的文件格式!");
                return false;
            }
        }
    </script>

    
</body> 

</html>


0条评论