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

2022-01-11 00:00:00 file-upload jquery jquery-plugins php

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

Ok, I hope this will be my last question in a series of Q's regarding dynamic file upload.

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

I'm using AjaxFileUpload Plugin and try to work with the FORM data in my uploader.php. The problem is that both $_POST and $_FILES is NULL.

这是我的 HTML 代码:

This is my HTML code:

  <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 脚本:

And this is my JS script:

  //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 代码:

To test that I data is submited, I have the following PHP code:

  $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 的大力帮助下(他的眼睛很好),我已经成功了!代码已更新为正确的代码.

After very good help from Pekka (with his good set of eyes), I have got it working! The code is updated with the correct code.

推荐答案

你正在分配

fileElementId:'uploadFile',

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

but your file field doesn't in fact have that ID.

你的 PHP 脚本应该在

And your PHP script should look in

$_FILES["uploadFile"]["name"]

相关文章