FormData为空(在PHP中)

时间:2013-05-02 23:54:58

标签: php javascript jquery form-data

我一直用它来通过AJAX和jQuery处理表单

$("#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);
?>

我只得到一个空数组。我甚至给了我想要一个ID的表格并以这种方式调用$('#uploadForm')

我有1个多选FILE输入,一个隐藏字段和一个文本输入字段。

我对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>

1 个答案:

答案 0 :(得分:-1)

尝试以这种方式访问​​它:

var form = document.getElementById('form-id');
var formData = new FormData(form);

从FormData上的this page开始。