php - 如何在 html 中显示图像,同时限制对这些图像的访问?

标签 php javascript html image

我的问题是当你使用例如:

<img src="/img.jpg" />

src 必须是图像,并且该图像必须可供用户访问。我希望能够控制对这些图像的访问(例如,如果用户已登录)。如果该人无法访问该图像,他就无法访问它。我控制图像访问的脚本是一个 php 文件。

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

最佳答案

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

<img src="images.php?f=img.jpg" />

然后您可以编写一个 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');
}

关于php - 如何在 html 中显示图像,同时限制对这些图像的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791268/

相关文章:

php - Laravel - 尝试获取非对象形式错误的属性

php - 如何禁止在 PHP 中使用某个函数?

php - Paypal 错误 : incorrectly formatted item amount

javascript - 在 TypeScript 中定义 js-data 资源

php - Chrome 的滚动延迟

php - MySQL Remove/Combine Similar Rows 及其引用

javascript - Pagedown 和尖括号不配合

javascript - ES6 类 - 映射变量数组

html - 如何使 SVG 叠加层固定在容器内的图像上?

html - 如何删除换行的 html?