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:filescopevar formData=new formData($(“#sendInvoiceForm”)[0])编码>并尝试打印($文件['file'])谢谢你,phpit中的code>帮助了我,但是我得到了错误TypeError:$(…)[0]。文件未定义
抱歉-我使用了错误的选择器。我为你更新了答案
$('#sendInvoiceForm input[type="file"]')[0].files.forEach(function(file) {
formData.append('files', file, file.name);
});