web-dev-qa-db-fra.com

Supprimer un fichier en utilisant php/codeigniter

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.

10
Jetoox

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_filesmethod 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.

30
Taha Paksu

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;
}
8
Pave

supprimer l'utilisation du fichier 

unlink($file_name);

ou pour supprimer l'utilisation du répertoire

rmdir($dir);
6
rafi

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");
3
Subkhan Sarif

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'];
}
2
Bablu Ahmed
$file = "test.txt";
if (!unlink($file))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted $file");
  }
2
Hkachhia

Septembre 2018 cette solution a fonctionné pour moi.

if(unlink(FCPATH . 'uploads/'.$filename)){
    echo "Deleted";
}else{
    echo "Found some error";
}
0
Amir Ur Rehman

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