Php 如何存储和管理用户&x27;网站中的图像

Php 如何存储和管理用户&x27;网站中的图像,php,image,image-uploading,image-upload,Php,Image,Image Uploading,Image Upload,我正在创建一个交友网站,用户可以上传他们的图片, 有些是私人的,有些是公共的 我计划做的是保存所有上传的图片,当我想展示它们时,我会有一个脚本来调用它们 ie:url->mysite.com/members/mainimage/5 处理此调用的函数是: 公共函数mainImage($user){ 但是当我看到我的网站越来越大, 我注意到,每个用户图像请求都会加载我的所有应用程序文件,这可能会降低我的网站速度 您是否知道如何保存私人图像(只有在对用户进行一些检查后,才会通过url公开这些图像)将您

我正在创建一个交友网站,用户可以上传他们的图片, 有些是私人的,有些是公共的

我计划做的是保存所有上传的图片,当我想展示它们时,我会有一个脚本来调用它们

ie:url->mysite.com/members/mainimage/5

处理此调用的函数是: 公共函数mainImage($user){

但是当我看到我的网站越来越大, 我注意到,每个用户图像请求都会加载我的所有应用程序文件,这可能会降低我的网站速度


您是否知道如何保存私人图像(只有在对用户进行一些检查后,才会通过url公开这些图像)

将您的私人图像存储在某个文件夹中,并将其放置在该文件夹中。
。htaccess
使用以下代码:

deny from all
所以现在没有人可以通过http直接访问这些文件

然后在站点的根目录中创建
.htaccess
,并将这些行复制到那里:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^private-photo/([0-9]+)\.(jpg|jpeg|gif|png)$ private_photo.php?id=$1 [QSA,L]
因此,现在所有http请求(如)都将重定向到private_photo.php


最后一步是:创建private_photo.php,从
$\u get[“id”]
,进行安全检查-如果请求照片的用户有权访问它,然后
fopen/fpassthru
图像,或者只是显示一个关于限制访问的错误,例如Facebook:它使用随机长名称作为图像,您无法轻松预测模式。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^private-photo/([0-9]+)\.(jpg|jpeg|gif|png)$ private_photo.php?id=$1 [QSA,L]