我有一个上传图像的 php 脚本,将其重命名为随机散列,根据散列创建文件夹,将原始图像存储在最后创建的文件夹中,最后为它创建 2 个其他缩略图...
常规图像...images/a3c/65c/297/108_a3c65c2974270fd093ee8a9bf8ae7d0b.jpg
缩略图...images/a3c/65c/297/108_a3c65c2974270fd093ee8a9bf8ae7d0b_t.jpg
较小的缩略图...images/a3c/65c/297/108_a3c65c2974270fd093ee8a9bf8ae7d0b_sm.jpg
对于上传的每张照片,它将在数据库中存储一条新记录,其中包含照片 ID 和此信息
/a3c/65c/297/108_a3c65c2974270fd093ee8a9bf8ae7d0b
(注意我没有存储“.jpg”或“_t.jpg”等)
现在为了让我提供图像(我不知道这是否是一个好习惯),目前我有这个返回图像的 php 函数......
function get_image($image_id,$type = '')
{
$sql = "SELECT * FROM photos where photo_id = {$image_id}";
$query = $this->db->query($sql);
$r = $query->row();
$image = base_url().'images/'.$r->dir_1 . '/' . $r->dir_2 . '/' . $r->dir_3 . '/'.$image_id.'_'.$r->img_hash;
if($type == 'small')
return $image.'_sm.jpg';
if($type == 'reg_thumb')
return $image.'_t.jpg';
if($type == '' || $type == 'original')
return $image.'.jpg';
}
基本上,我想做一些像推特这样的图片网址看起来像这样的事情
https://twimg0-a.akamaihd.net/profile_images/2392722244/blah.jpg
问题...
- 我怎样才能实现这种类型的 url 结构?访问?
- 我是否以正确的方式返回图像?
- 我在做什么是安全、聪明和好的做法吗?如果没有,有更好的方法吗?
谢谢!!