简体   繁体   English

wordpress rest api 授权

[英]wordpress rest api Authorization

hi i use this code for upload image in wordpress with api嗨,我使用此代码在带有 api 的 wordpress 中上传图像

my code :我的代码:

<?php

$file = $_FILES["RESULT_FileUpload-6"]["tmp_name"];
$url = 'http://tst.com/wp-json/wp/v2/media/';
$ch = curl_init();
$username = 'username';
$password = '123456';

curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $file );
curl_setopt( $ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Content-Disposition: form-data; filename="'.$_FILES["RESULT_FileUpload-6"]["name"].'"',
    'Authorization: Basic ' . base64_encode( $username . ':' . $password ),
] );
$result = curl_exec( $ch );
curl_close( $ch );
print_r( json_decode( $result ) );

?>

but when i use this code show error 401 "rest_cannot_create"但是当我使用此代码时显示错误 401“rest_cannot_create”

i use username and password correct (username and password for wordpress admin panel)我使用正确的用户名和密码(wordpress 管理面板的用户名和密码)

Is there another way for Authorization rest api wordpress??还有另一种授权rest api wordpress的方法吗??

尝试将其添加到htaccess文件中:

RewriteRule ^index\.php$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

I have to upload pdf file.我必须上传pdf文件。 This will help you in any of you file uploading to custom directories这将帮助您将任何文件上传到自定义目录

public function uploadFiles(WP_REST_Request $request)
{
    if(checkloggedinuser()){        
        if ( ($request->get_file_params('file'))) {
            $upload_dir = wp_upload_dir();

            $user_id = checkloggedinuser();
            $timestamp = time();
            if ( ! empty( $upload_dir['basedir'] ) ) {
                $user_dirname = $upload_dir['basedir'].'/customize-files';
                if ( ! file_exists( $user_dirname ) ) {
                    wp_mkdir_p( $user_dirname );
                }
                
                $filename_maker = $user_id.'_'.$timestamp.'_'.$_FILES['file']['name'];
                $filename = wp_unique_filename( $user_dirname, $filename_maker );
                // return $filename_maker;
                $check = move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
                // save into database $upload_dir['baseurl'].'/product-images/'.$filename;
                if($check){
                    $path = $upload_dir['baseurl'].'/customize-files/'.$filename_maker;
                    return array(
                        'success' => true,
                        'responsecode' => 200,
                        "message" => "File Uploaded Successfully",
                        "data" => [
                            "path" => $path,
                        ],
                    );       
                }
            }
        }else{
             return array(
                'success' => false,
                'responsecode' => 403,
                "message" => "Please Provide File",
                "data" => [],
            );
        }

    }else{
         return array(
            'success' => false,
            'responsecode' => 403,
            "message" => "Please Logged In to get Data",
            "data" => [],
        );
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM