简体   繁体   中英

PHP Codeigniter- How to delete an image from folder

I've been working with my codeigniter project for gallery part.

I've succeed on displaying all images, now I want to make function to delete images from folder. I tried it but get some error.

My Controllers

function delete_img(){
    if (array_key_exists('delete_file', $_POST)) {
      $filename = $_POST['delete_file'];
      if (file_exists($filename)) {
        unlink($filename);
        echo 'File '.$filename.' has been deleted';
      } else {
        echo 'Could not delete '.$filename.', file does not exist';
      }
    }
}

My Full Views, Gallery Part

<?php
    //FOLDER GALLERY-PART
     $dirname = "./assets/images/gallery/";
     $images = glob($dirname."*.jpg");

     array_multisort(array_map('filemtime', $images), SORT_NUMERIC, SORT_DESC, $images);

     foreach($images as $image) {

    "<div class='col-xs-6 col-sm-4 col-md-3 portfolio-item logos'>
       <div class='portfolio-wrapper'>
         <div class='portfolio-single'>
           <div class='portfolio-thumb'>
             <img src='.$image.' class='img-responsive' alt=''>
               </div>
                <div class='portfolio-view'>
                   <ul class='nav nav-pills'>
                     <li><a href='gallerydetail'><i class='fa fa-link'></i></a></li>
                     <li><a href='.$image.' data-lightbox='example-set'><i class='fa fa-eye'></i></a></li>
                     <li><a href='#'><i class='fa fa-heart'></i></a></li>
                        </ul>
                </div>
              </div>
              <div class='portfolio-info'>
                    <form id='imgtitle' class='kart' action='" . base_url() . "gallery/delete' method='post'>
                        <input type = 'hidden' name='delete_file' value='.$image.' />
                        <input type = 'submit' value='Delete' class='btn btn-common'/>
                    </form>
                </div>
            </div>
        </div>";
            }
        ?>

I get this code from here I tried to implement this into codeigniter, the result was error. Like this:

Could not delete ../assets/images/gallery/hermesed231486375164.jpg., file does not exist

The file was exist, but idk why it errors.

EDITED: Ok I was trying to fixed it with base_url, the result:

Could not delete http://k-art.local/../assets/images/gallery/hermesed231486375164.jpg., file does not exist

Now, how to delete this thing [../] it might worked when it disappear

Change permission folder gallery for 0777

OR Try:

function delete_img(){
    if (array_key_exists('delete_file', $_POST)) {
      $filename = $_POST['delete_file'];
      if (file_exists($filename)) {
        chmod($filename, 0777);
        if(unlink($filename)) {
            echo 'File '.$filename.' has been deleted';    
        }else echo 'Could not delete '.$filename;
      }else echo 'File does not exist: '.$filename;
    }
}

SOLVED WITH IDIOT WAY

From this:

<input type = 'text' name='delete_file' value='.$image.' />

To this.. Just deleting the dot[.] mark. Really? LMAO

<input type = 'text' name='delete_file' value='$image' />

But anyway thanks for replying :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM