获取 input type="file" 标签的内容,并使用ajax进行请求到服务器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ajax file</title>
    <script src="./js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            $file = $("#file")
            $file.change(function(){
                var formData = new FormData();
                formData.append('file', $('#file')[0].files[0]); // 固定格式
                alert(formData)
                $.ajax({        // ajax前记得加点 . !!!!!!!!!!!!!!!!!
                    url:"http://www.baidu.com",
                    type:"POST",
                    cache:false,
                    data:formData,
                    processData:false,
                    contentType:false,
                    success:function(data){
                        alert("=============")
                    },
                    fail:function(data){
                        alert("++++++++++++++++")
                    }
                });
            });
        });
    </script>
</head>
<body>
    <input type="file" id="file">
</body>
</html>

<!-- 上传后,服务器端代码需要使用从查询参数名为file获取文件输入流对象,因为<input>中声明的是name="file"。 -->
<!-- 
从Servlet 3.0(这好像是java的一个框架) 开始,可以通过 request.getPart() 或 request.getPars() 两个接口获取上传的文件(django不确定是否使用这样方式进行获取数据) -->

<!--
processData设置为false。因为data值是FormData对象,不需要对数据做处理。
cache设置为false,上传文件不需要缓存。
contentType设置为false。因为是由<form>表单构造的FormData对象
所以这里设置为false。上传后,服务器端代码需要使用从查询参数名为file获取文件输入流对象,因为<input>中声明的是name="file" -->
原文地址:https://www.cnblogs.com/lowmanisbusy/p/9033736.html