This will list all the zip files into the particular directory.
For testing you can create test folder and add some inner folder into it and put zip files. So that it will not take long to scan and display all the files.
<?php
$mydirectory = 'C:/xampp/htdocs/test';
// create recursive directory iterator for zip folder
$directory_iterator = new RecursiveDirectoryIterator($mydirectory);
// required to iterate through results using foreach
$recursive_iterator = new RecursiveIteratorIterator($directory_iterator);
// filter only .zip files
$regex_iterator = new RegexIterator($recursive_iterator, '/^.*\.zip$/',
RegexIterator::GET_MATCH);
// iterate through results
foreach($regex_iterator as $file_info) {
var_dump($file_info);
}
To remove file
use unlink() function to remove the files. On click of particular link should take you to the php page where you can get the file name and remove it.
<?php
if(isset($_POST) && !empty($_POST) && $_SERVER['REQUEST_METHOD'] === 'POST'){
if (!empty($_POST['zip_file'])) {
if (!unlink($_POST['zip_file']))
{
echo ("file cannot be deleted due to an error");
}
else
{
echo ("file has been deleted");
}
}
header('location:zip_delete_demo.php');
die();
}
?>
<html>
<body>
<form method="post" name="zip_form" id="zip_form">
<?php
$mydirectory = 'C:\xampp\htdocs\php_demo';
$directory_iterator = new RecursiveDirectoryIterator($mydirectory);
$recursive_iterator = new RecursiveIteratorIterator($directory_iterator);
$regex_iterator = new RegexIterator($recursive_iterator, '/^.*\.zip$/',RegexIterator::GET_MATCH);
foreach($regex_iterator as $file_info) {
echo '<a class="btn_delete_zip" href="javascript:void(0);" data-href="'.$file_info[0].'">'.$file_info[0].'</a><br/>';
?>
<?php
}
?>
</form>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).on('click','.btn_delete_zip',function(){
var zip_file = jQuery(this).data('href');
var input = $("<input>")
.attr("name", "zip_file")
.attr("type", "hidden")
.val(zip_file);
$('#zip_form').append(input);
$('#zip_form').submit();
});
});
</script>
</html>
Notes
Please increase the maximum execution time in php.ini file.
Please don't test your code by putting any exist or die function. It will list out only single file.