codeigniter上传目录,取消链接照片

时间:2013-01-28 23:09:40

标签: php codeigniter

我正在使用codeigniter来创建我网站的管理面板。我没有在前端使用它,因为前端有很多静态页面,只有少数东西需要动态,所以我将使用核心PHP查询。

我取消链接照片的链接是,图像是控制器,unlinkPhoto是功能,32是图像ID。

localhost/admin/index.php/images/unlinkPhoto/32

修改

但是我的图片位于localhost/uploads/testimage.jpg. 如何指向该文件夹以取消在codeigniter中链接图像。

1 个答案:

答案 0 :(得分:3)

您确实需要确保执行合适的安全协议,否则任何人都可以伪造GET请求并删除整个上传的文件。这是一个基本的解决方案:

public function unlinkPhoto($photoId)
{
   // Have they specified a valid integer?
   if ((int) $photoId > 0) {
      foreach (glob("uploads/*") as $file) {
         // Make sure the filename corresponds to the ID
         // Caters for all file types (not just JPGs)
         $info = pathinfo($file);
         if ($info['filename'] == $photoId) {
            unlink($file);
         }
      }
   }
}

如果您使用的是PHP 5.4,则可以将此代码减少更多:

if (pathinfo($file)['filename'] == $photoId) {
   unlink($file);
}

因为他们implemented array dereferencing(最后)。虽然我没有测试过这段特殊的代码。这只是一个令人讨厌的附录。