我有一个免费的图片上传中心。我可以限制远程服务器对我服务器上文件的请求吗?如何?
例如:
如果test.png
每天请求超过 1000 个,直到第二天请求不被接受或重定向到其他路径。
我可以建议你,用这个解决方案:
希望这个选项对你有用,我没有附加任何代码示例。后面会帮你。
很有趣,也许你可以做的是:
我希望这有帮助
这是可能的。对于上传的每张图片,在数据库中有一个名为“命中”的列或类似的东西。
与其直接提供图像,不如通过 PHP 文件提供图像。将标题内容类型设置为您的图像格式更新您的计数器。
示例实现可能如下所示。请注意,这还没有准备好使用代码,但您会看到自己。
<?php
$image = $db->getWhere('images', array('img_id' => $_GET['img']));
if($image->hits >= 1000)
{
header('location: /imageviewsexceeded.php');
die();
}
header("Content-type: image/png");
$im = imagecreatefrompng('images/'.$_GET['img'].'.png');
imagepng($im);
imagedestroy($im);
$db->query('UPDATE `images` SET `hits` = `hits` + 1 WHERE `img_id` = ?', array($_GET['img']));
?>
您可能希望自定义数据库连接并检查图像是否存在。但我希望这是一个适合你的好地方。
快乐编码!:)
这取决于您的网络服务器。
是的,您可以在 MySQL 中存储图像列表或使用真正的 PHP 处理图像,但如果您只需要简单的控制文件请求限制,您可以使用您的网络服务器来完成,有时也可以使用防火墙!
据我所知,NGINX 可以限制特殊文件夹接受的请求。