如何在html中显示图像,同时限制访问那些?

man*_*iak 0 html javascript php image

我的问题是当你使用例子时:

<img src="/img.jpg" />
Run Code Online (Sandbox Code Playgroud)

src必须是图像,并且图像必须是人可访问的.我希望能够控制对这些图像的访问(例如,如果用户被记录).如果此人无法访问该图像,则无法访问该图像.我控制图像访问的脚本是一个php文件.

我知道.htaccess可以限制对资源的访问,但我需要在php文件中有效.有没有办法这样做或使用javascript(使用ajax请求)加载图像并将图像的源更改为临时文件夹中的图像的位置?

Leo*_*Leo 5

您的图像源不一定必须指向真实图像,也不必是图像:

<img src="images.php?f=img.jpg" />
Run Code Online (Sandbox Code Playgroud)

然后,您可以编写一个PHP脚本来执行所需的验证,然后通过脚本返回图像

$image = basename($_GET['f']);
if (user_has_access()) {
    // You have to determine / send the appropriate MIME-type manually
    header('content-type: image/jpg');
    readfile($image);
} else {
    header('HTTP/1.1 403 Forbidden');
}
Run Code Online (Sandbox Code Playgroud)