Reputation: 121
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
Upvotes: 0
Views: 2433
Reputation: 121
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 :)
Upvotes: 1
Reputation: 1086
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;
}
}
Upvotes: 0