AjaxFileUpload插件不检索$ _POST或$ _FILES数据

时间:2010-09-09 11:02:58

标签: php jquery jquery-plugins file-upload

好的,我希望这将是我关于动态文件上传的一系列Q中的最后一个问题。

我正在使用AjaxFileUpload Plugin并尝试使用我的uploader.php中的FORM数据。问题是$_POST$_FILES都是NULL。

这是我的HTML代码:

  <form id="uploadForm" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    <input type="hidden" name="current_path" value="<?php echo $fb->relative_url; ?>" />
    <input id="uploadFile" name="uploadFile" type="file" />
    <input type="button" class="button uploadImage" value="<?php _e('Upload File') ?>" /> <br />
  </form> 

这是我的JS脚本:

  //File upload
    jQuery('.uploadImage').live('click',function() {
    ajaxFileUpload();
  });

  (...)

  function ajaxFileUpload() {
    jQuery.ajaxFileUpload ( {
        url:'../wp-content/plugins/wp-filebrowser/uploader.php', 
        secureuri:false,
        fileElementId:'uploadFile',
        dataType: 'json',
        success: function (data, status) {
            alert('Error: ' + data.error + ' - Respons: ' + data.respons)
        },
        error: function (data, status, e) {
            alert('Error: ' + e);
        }
      }
    )
    return false;   
  }

为了测试我的数据是否被提交,我有以下PHP代码:

  $data['error']    = $_POST['current_path'];  // Gives me NULL
  $data['respons']  = $_FILES['uploadFile']['name']; // Gives me NULL

  // Return result in json 
  echo json_encode($data);  

更新

在Pekka的非常好的帮助下(用他那双精美的眼睛),我得到了它的工作!使用正确的代码更新代码。

1 个答案:

答案 0 :(得分:3)

您正在分配

fileElementId:'uploadFile',

但您的文件字段实际上并没有该ID。

您的PHP脚本应该在

中查找
$_FILES["uploadFile"]["name"]