Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FormData添加文件不';行不通_Javascript_Php_Jquery_Multipartform Data_Form Data - Fatal编程技术网

Javascript FormData添加文件不';行不通

Javascript FormData添加文件不';行不通,javascript,php,jquery,multipartform-data,form-data,Javascript,Php,Jquery,Multipartform Data,Form Data,我有以下表格: <form enctype="multipart/form-data" action="" method="post" id="sendInvoiceForm"> <input type="text" value="Some text"> <input name="file[]" type="file" multiple/> <input type="button" id="upload" value="Upl

我有以下表格:

<form enctype="multipart/form-data" action="" method="post"  id="sendInvoiceForm">
    <input type="text" value="Some text">
    <input name="file[]" type="file"  multiple/>
    <input type="button" id="upload" value="Upload File" />
</form>
当我尝试用php获取我的“文件”时,我只得到[object HTMLFormElement] 如何在php上获取文件

但是如果我将formData创建为:
var formData=new formData($(“#sendInvoiceForm”)[0])
我可以在_files中找到我的文件,但我需要为此数组提供名称


我怎样才能解决这个问题?谢谢

问题是因为您将
表单
DOM元素附加到FormData,而不是文件数据。相反,您应该访问该对象的
文件
数组:

formData.append('files', $('#sendInvoiceForm input[type="file"]')[0].files[0]);
由于可以选择多个文件,您需要在其中循环:

$('#sendInvoiceForm input[type="file"]')[0].files.forEach(function(file) {
  formData.append('files', file, file.name);
});

名称已经存在,它是
文件
,您可以使用
$\u FILES['file']
在php中访问它。那么问题出在哪里?$\u文件是空的。我尝试打印($文件['FILES'])
和get error Undefined index:filescope
var formData=new formData($(“#sendInvoiceForm”)[0])并尝试打印($文件['file'])帮助了我,但是我得到了错误
TypeError:$(…)[0]。文件未定义
抱歉-我使用了错误的选择器。我为你更新了答案
$('#sendInvoiceForm input[type="file"]')[0].files.forEach(function(file) {
  formData.append('files', file, file.name);
});