使用ajax在php中上载(.doc、.docx)文件

使用ajax在php中上载(.doc、.docx)文件,php,jquery,ajax,Php,Jquery,Ajax,我试图通过ajax上传一个.doc、.docx文件,但它一直在控制台中向我发送一个错误。这是我的剧本 var file = $('#file').val(); $(document).on('change','#file',function(){ var data = new FormData($("#fileinfo")); $.each($('#file')[0].files, function(i, file)

我试图通过ajax上传一个.doc、.docx文件,但它一直在控制台中向我发送一个错误。这是我的剧本

        var file = $('#file').val();
        $(document).on('change','#file',function(){
            var data = new FormData($("#fileinfo"));
            $.each($('#file')[0].files, function(i, file) {
                data.append('file-'+i, file);
            });
            console.log(FormData);
            $.ajax({
                url: "main-function.php?call=upload",
                data: data,
                cache: false,
                contentType: false,
                processData: false,
                type: 'POST',
                success: function(data){
                    console.log(data)
                }
            });
            return false;

        });
下面是main-function.php:

编辑:这里是错误

  <b>Notice</b>:  Undefined index: file in <b>C:\xampp\htdocs\hrms\main\main-function.php</b> on line <b>9</b><br />

  <b>Warning</b>:  finfo_file() [<a href='function.finfo-file'>function.finfo-file</a>]: Empty filename or path in <b>C:\xampp\htdocs\hrms\main\main-function.php</b> on line <b>9</b><br />
您正在以文件-0、文件-1、…的形式发送文件。。。但你在找文件。 如果只发送一个文件,请将该文件作为文件发送

另外,如果fileinfo是表单,则需要将其传递给FormData构造函数,而不是jQuery对象

var data = new FormData($("#fileinfo")[0]);

此外,如果文件采用该格式,您将发送两次该文件。

您遇到了什么错误?其他文件类型可以吗?什么是属性类型、多部分/表单数据,?它向您的控制台发送了什么错误?我认为这是因为它在发布的数据中不包含多部分/表单数据。这就是错误发生的原因。思想?或者通过ajax或jquery上传文件的其他方法?
data.append('file', $('#file')[0].files[0]);
var data = new FormData($("#fileinfo")[0]);