Wordpress前端上传不适用于已注销的用户

时间:2015-09-06 23:33:32

标签: php ajax wordpress form-data

我使用下面的代码从前端表单上传文件到Wordpress并获取他们的元数据,用于填充字段等:

var formData = new FormData();
      formData.append("action", "upload-attachment");
      var fileInputElement = document.getElementById("entryfile");
      formData.append("async-upload", fileInputElement.files[0]);
      formData.append("name", fileInputElement.files[0].name);
      formData.append("_wpnonce", upload_nonce);
      var xhr = new XMLHttpRequest();
      xhr.onreadystatechange=function(){
        if (xhr.readyState==4 && xhr.status==200){
          console.log(xhr.responseText);             
        }
      }
      xhr.open("POST","wp-admin/async-upload.php",true);
      xhr.send(formData);

但是,此代码仅适用于登录用户。如果访问者未登录,则控制台会记录如下所示的重定向:

wp-login.php?redirect_to=http:// ... 

为什么这不起作用?有解决方法吗?

**更新:** 我最终使用formData上传文件。但是,在那之后我似乎无法处理它。这是我在php ajax处理程序中使用的代码:

if ($_FILES) {
    foreach ($_FILES as $file => $array) {
      if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
        echo json_encode("upload error : " . $_FILES[$file]['error']);
        exit;
      }
      $attach_id = media_handle_upload( $file, 0 );
    }
  }

我总是收到错误。要么文件是空的(虽然$ _FILES数组包含文件数据),或者只是一个空错误...请帮助....

0 个答案:

没有答案