[Tutorial Yii] Cara Delete File

Cara delete file:

Controller

public function actionDelete($id)
{
      $model = $this->loadModel($id);
      $folder = Yii::getPathOfAlias('webroot.uploads.files').DIRECTORY_SEPARATOR; // folder for uploaded files
      $submission = $model->submission_id;
      $file = $model->file;
      if( $file != null  &&  file_exists( $folder.'/'.$submission.'/'.$file ) ){
             unlink(getcwd().'/uploads/files/'.$submission.'/'.$file);
      }
      $model->delete();
      // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
      if(!isset($_GET['ajax']))
      {
           $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
      }
}

 

Cara delete folder dan isinya:

Controller

public function actionDelete($id)
{
       $model = $this->loadModel($id);
       $dir = getcwd().'/uploads/files/'.$id;
 
       $this->delTree($dir);
       $model->delete();
       // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
       if(!isset($_GET['ajax']))
       {
              $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('history'));
       }
}
public static function delTree($dir) { 
     $files = array_diff(scandir($dir), array('.','..')); 
     foreach ($files as $file) { 
         (is_dir("$dir/$file")) ? $this->delTree("$dir/$file") : unlink("$dir/$file"); 
      } 
      return rmdir($dir); 
}

Leave a comment