我的根目录中有 3 个文件夹,“应用程序”、“系统”和“上传”。在 application/controllers/mycontroller.php 我有这行代码。
delete_files("../../uploads/$file_name");
该文件没有被删除,我尝试了许多路径选项,如 ../ 和 ../../../ 有什么想法吗?谢谢。
我的根目录中有 3 个文件夹,“应用程序”、“系统”和“上传”。在 application/controllers/mycontroller.php 我有这行代码。
delete_files("../../uploads/$file_name");
该文件没有被删除,我尝试了许多路径选项,如 ../ 和 ../../../ 有什么想法吗?谢谢。
为此,请使用 CodeIgniter 提供给您的 FCPATH 常量。
unlink(FCPATH . '/uploads/' . $filename);
base_url()
生成 HTTP url,不能用于生成文件系统路径。这就是您必须使用 CI 路径常量之一的原因。它们在前端控制器文件 (index.php) 中定义。
您将使用的三个是:
FCPATH
- 前端控制器的路径,通常是 index.phpAPPPATH
- 应用程序文件夹的路径BASEPATH
- 系统文件夹的路径。$file_name
是一个变量。您应该将其连接到您自己的字符串以执行该函数:
delete_files("../../uploads/" . $file_name);
编辑:
确保这句话:
echo base_url("uploads/" . $file_name);
正在回显有效路径。如果答案是肯定的,试试这个:
$this->load->helper("url");
delete_files(base_url("uploads/" . $file_name));
假设您的“上传”文件夹位于您的根目录中。
编辑2:
使用unlink
功能:
$this->load->helper("url");
unlink(base_url("uploads/" . $file_name));
试试这个..这只是解决您问题的一个非常简单的解决方案.. 如果您注意到 CI 有定义 base_path 到您的目录,例如在上传库的配置中:
$imagePath = './picture/Temporary Profile Picture/';
$config['upload_path'] = $imagePath;
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$this->load->library('upload', $config);
如果您注意到 upload_path 是 './picture/Temporary Profile Picture/'
所以如果你想从目录中删除一个文件,你所要做的就是使用 unlink() 函数。
unlink($imagePath . $file_name);
或者
@unlink($imagePath . $file_name);
享受..^^
这段代码对我有用。在你的模型或控制器中试试这个。根据您的更改文件路径。
文件路径 -->> project_name/assets/uploads/file_name.jpg
public function delete_file()
{
$file = 'file_name.jpg';
$path = './assets/uploads/'.$file;
unlink($path);
}
你应该试试这段代码:
$imagepath = $config['upload_path'];
unlink($imagepath . $images);
或者
delete_files($imagepath . $images);
public function deleteContent($id)
{
$this->db->where('Filename',$id);
$this->db->delete('tableName',array('Filename'=>$id));
if (unlink("upload/folderName/".$id))
{
redirect($_SERVER['HTTP_REFERER']);
}
}