我正在使用codeigniter来创建我网站的管理面板。我没有在前端使用它,因为前端有很多静态页面,只有少数东西需要动态,所以我将使用核心PHP查询。
我取消链接照片的链接是,图像是控制器,unlinkPhoto是功能,32是图像ID。
localhost/admin/index.php/images/unlinkPhoto/32
但是我的图片位于localhost/uploads/testimage.jpg.
如何指向该文件夹以取消在codeigniter中链接图像。
答案 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(最后)。虽然我没有测试过这段特殊的代码。这只是一个令人讨厌的附录。