限制每位作者的图片访问权限,即使他们拥有图片网址

时间:2016-02-01 11:49:26

标签: php wordpress

我有每个用户的特定页面,里面没有帖子。我已经为他们添加了一个表单,用于将图片上传到uploads文件夹,该文件夹将以该用户的唯一名称保存。这很好。

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

<?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);
        }
    }
}
?>

2 个答案:

答案 0 :(得分:0)

使用MD5哈希

创建图像的名称
$newfilename=MD5($prod ."something").".".$extension;

答案 1 :(得分:0)

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

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