我一直在使用这种通过AJAX和jQueryFORMDATA是空的(在PHP)
$("#uploadBtn").click(function()
{
var formData = new FormData($('form')[0]); //--FormData here, problem line
$.ajax({
url: 'resources/ajax/ajax_upload_video.php',
type: 'POST',
xhr: function()
{
xhr = $.ajaxSettings.xhr();
if (xhr.upload)
{
xhr.upload.addEventListener('progress', progressHandlingFunction, false);
}
return xhr;
},
success: function(msg)
{
log(msg);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
已工作的罚款处理的形式。我在页面上添加了第二个表单(搜索顶部,上传器底部)
我明白$('form')[0]
会抓住页面上的第一个表单,所以自然我将javascript改为$('form')[1]
。当我对它做一个console.log时,它是正确的形式。
当我点击上传按钮,但我的PHP文件说没有发布任何内容。为简单起见,我的php文件是这样的:
<?php
var_dump($_POST);
?>
我只得到一个空数组。我甚至给了我想要一个身份证的表格,并将其称为$('#uploadForm')
。
我有1个多选文件输入,一个隐藏字段和一个文本输入字段。
我在做什么错与FormData
对象?
一方面,我一直在使用WAMP在本地开发此页面,并将它移动到我们在线的CentOS服务器。这可能是一个PHP设置,是不是我的本地环境相同?我想不出什么PHP设置将与POST
做上传表单
<form id="videoUploadForm" method="post" enctype="multipart/form-data" class="upload-form modal-edit-form">
<div class="modal-body">
<p>
<div align="center" id="fileSelect">
<input type="hidden" value="video" name="mediaType" id="mediaType" />
<input type="hidden" value="<?php echo $_GET['reelId']; ?>" name="reelId" id="reelId" />
<input type="file" name="videos[]" id="videos" accept="video/mp4" multiple />
</div>
<br>
</p>
<p>
<div id="dropbox">
<ul class="hide" id="filelist">
</ul>
<div align="center" id="nofiles">Select some file to begin</div>
</div><br>
</p>
<p>
<hr>
<label>Search Tags <small>[at least two tags separate by comma]</small></label>
<input type="text" class="span5" name="searchTags" id="searchTags" disabled />
</p>
<hr>
<p align="center">
<img src="resources/img/loader.gif" class="hide" id="loader" />
<button type="button" class="btn btn-info" name="uploadBtn" id="uploadBtn" disabled><i class="icon-circle-arrow-up icon-white"></i> Begin Upload</button>
<div id="successfulUpload" class="alert alert-success hide">
<b>The videos have been successfully uploaded.</b><br/>
</div>
</p>
</div>
</form>
删除'processData:false'字符串,看看它是否工作。 – Ohgodwhy 2013-05-02 23:58:44
你确定表单上传过的文件吗?我没有得到它与$ .ajax的工作,如果表单有文件,并最终使用$ .ajaxForm插件http://malsup.com/jquery/form/ – HMR 2013-05-03 00:02:24
我很积极,它是在@Ohgodwhy之前上传文件不起作用 – Ronnie 2013-05-03 00:03:50