限制每个作者的图像访问权限,即使他们拥有图像 URL



我为每个用户都有特定的页面,里面没有帖子。我为他们添加了一个表单,用于将图像上传到上传文件夹,该文件夹将以该用户的唯一名称保存。这工作正常。

现在我需要限制其他用户的访问,试图通过摆弄 url 来查找其他提交的图像。我怎样才能确保这一点?

<?php
if($_POST)
{
    if (!function_exists('wp_generate_attachment_metadata')){
        require_once(ABSPATH . "wp-admin" . '/includes/image.php');
        require_once(ABSPATH . "wp-admin" . '/includes/file.php');
        require_once(ABSPATH . "wp-admin" . '/includes/media.php');
    }
    if($_FILES)         
    {
        foreach ($_FILES as $file => $array)
        {       
            if($_FILES[$file]['error'] !== UPLOAD_ERR_OK){return "upload error : " . $_FILES[$file]['error'];}
            $filename=$_FILES[$file]["name"];
            $extension=end(explode(".", $filename));
            $newfilename=$prod ."something.".$extension;                        
            $_FILES[$file]["name"] = $username . '-' . $newfilename;
            $attach_id = media_handle_upload($file,$new_post);
            echo wp_get_attachment_url($attach_id);
        }
    }
}
?>

使用 MD5 哈希创建图像的名称

$newfilename=MD5($prod ."something").".".$extension;

需要将映像作为 blob 存储在数据库中,以及用户名和映像名称(作为 varchar)。然后编写一个模仿图像文件的 php 包装器文件,并通过图像 url 查询字符串传递用户凭据以进行验证。访问图像的 HTML 代码如下所示:

<img src="image.php?imageName=YourImageName&user=JoeBlogg">

最新更新