Javascript 使用formData上载文件返回未定义的文件数组
我从print\u r($\u POST)中得到了未定义,它发布在同一个php页面上Javascript 使用formData上载文件返回未定义的文件数组,javascript,php,jquery,form-data,Javascript,Php,Jquery,Form Data,我从print\u r($\u POST)中得到了未定义,它发布在同一个php页面上 Array ( [file] => undefined ) 已编辑-添加了调用上载标题功能的部分 HTML <form enctype="multipart/form-data" id="banner_form" class="form-horizontal" role="form" action=""> <input type="hidden" name="MAX_FILE_SI
Array ( [file] => undefined )
已编辑-添加了调用上载标题功能的部分
HTML
<form enctype="multipart/form-data" id="banner_form" class="form-horizontal" role="form" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input id="file" name="file" type="file" class="filestyle" accept="image/jpeg,image/gif,image/png">
</form>
json作为数据类型导致im从php端返回数组,没有发布额外的代码,因为im在文件上传部分已经遇到问题
PHP
if(isset($_POST['file'])) {
print_r($_POST);
exit();
}
我做错什么了吗 您的函数甚至没有被调用,因为您没有处理程序运行的提交按钮。 应该是这样的:
<form enctype="multipart/form-data" id="banner_form" class="form-horizontal" role="form" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input id="file" name="file" type="file" class="filestyle" accept="image/jpeg,image/gif,image/png">
<input type="submit" id="submit_btn"/>
</form>
您的JS中也有语法错误,不需要第二组})
关闭单击处理程序
JSFiddle:
表单数据设置不正确,应为:
var form_data = new FormData( );
form_data.append('file', $('input[type=file]')[0].files[0]);
您确定ajax引用的url是正确的吗
为什么在您进行post而不是get时会出现查询参数(?p=73
)
最后,试着通过
success:function(data){alert(JSON.stringify(data))},
您的error.log中是否有错误?没有错误,只有来自$\u post的未定义文件数组调用了upload\u banner
?form_data.append('file',$('input[type=file])[0].files[0])的用途是什么代码>?为什么要将dataType
设置为“json”
?我们需要查看调用此upload\u banner
函数的位置。upload\u banner是我的表单IDsorry为避免混淆,是的,我确实删除了额外关闭的处理程序。我有2张表格正在提交1)首先点击提交按钮,它将提交第一张表格2)第一张表格完成后,它将调用第二个函数upload_banner来提交第二张表格,这是图片上传。我有另一个文件,它的代码完全相同,可以提交两张表格,没有问题,唯一的区别是,另一个页面提交给另一个php文件,而不是它自己。不知道为什么,但似乎无法获得第二个表单。。对var form_data的更改=新FormData($(“#banner_form”);在将响应更改为jsonit之后,worksim仍然没有为file定义,它以{“file”响应:“undefined”}我确实在输入标记中定义了类型,如果你向后看,如果它在名称后面,那么试试这个var form_data=new FormData()代码>然后形成数据。追加('file',$('input[type=file]')[0]。文件[0])代码>
var form_data = new FormData( );
form_data.append('file', $('input[type=file]')[0].files[0]);