Je voudrais supprimer un fichier qui se trouve dans mon localhost.
localhost/project/folder/file_to_delete
J'utilise codeigniter pour cela.
Je voudrais utiliser la fonction unlink () dans php mais je ne comprends vraiment pas comment l'utiliser.
vous pouvez utiliser le "fichier assistant" dans codeigniter.
http://codeigniter.com/user_guide/helpers/file_helper.html
et comme ça:
$this->load->helper("file");
delete_files($path);
Late Edit:delete_files
method utilise un chemin pour effacer tout son contenu via unlink()
et vous pouvez le faire de même dans CI. Comme ça:
unlink($path);
un chemin valide.
http://php.net/manual/en/function.unlink.php
C'est la meilleure façon de comprendre ... Lisez-le!
$path_to_file = '/project/folder/file_to_delete';
if(unlink($path_to_file)) {
echo 'deleted successfully';
}
else {
echo 'errors occured;
}
supprimer l'utilisation du fichier
unlink($file_name);
ou pour supprimer l'utilisation du répertoire
rmdir($dir);
Essayez ceci, cela fonctionne pour moi:
unlink("./path/to/folder/file_name_do_delete");
par exemple, je place mon fichier dans le dossier uploads situé en dehors du dossier de l'application et mon nom de fichier est 123.jpg. Donc ça devrait être comme ça:
unlink("./uploads/123.jpg");
Utilisez FCPATH
dans unlink. Vous pouvez essayer comme suit cela fonctionne pour moi:
$file_name = $SBLN_ROLL_NO."_ssc";
$file_ext = pathinfo($_FILES['ASSIGNMENT_FILE']['name'],PATHINFO_EXTENSION);
//File upload configuration
$config['upload_path'] = $upload_path;
$config['allowed_types'] = 'jpg|jpeg|png|gif|pdf';
$config['file_name'] = $file_name.'.'.$file_ext;
//First save the previous path for unlink before update
$temp = $this->utilities->findByAttribute('SKILL_DEV_ELEMENT', array('APPLICANT_ID'=>$STUDENT_PERSONAL_INFO->APPLICANT_ID, 'SD_ID'=>$SD_ID));
//Now Unlink
if(file_exists($upload_path.'/'.$temp->ELEMENT_URL))
{
unlink(FCPATH . $upload_path.'/'.$temp->ELEMENT_URL);
}
//Then upload a new file
if($this->upload->do_upload('file'))
{
// Uploaded file data
$fileData = $this->upload->data();
$file_name = $fileData['file_name'];
}
$file = "test.txt";
if (!unlink($file))
{
echo ("Error deleting $file");
}
else
{
echo ("Deleted $file");
}
Septembre 2018 cette solution a fonctionné pour moi.
if(unlink(FCPATH . 'uploads/'.$filename)){
echo "Deleted";
}else{
echo "Found some error";
}
Ce code peut également gérer des dossiers non vides - utilisez-le simplement dans un assistant.
if (!function_exists('deleteDirectory')) {
function deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir) || is_link($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!deleteDirectory($dir . "/" . $item)) {
chmod($dir . "/" . $item, 0777);
if (!deleteDirectory($dir . "/" . $item)) return false;
};
}
return rmdir($dir);
}
}