1

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

我取消链接照片的链接是,images 是控制器,unlinkPhoto 是函数,32 是图像 ID。

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

编辑

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

4

1 回答 1

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);
}

因为他们已经实现了数组取消引用(最终)。虽然我还没有测试过这段特定的代码。这只是一个令人讨厌的附录。

于 2013-01-28T23:16:11.200 回答