简体   繁体   中英

PHP how to access file from folder and how to download them

<?php
$dir_path = "./folder/";
if(is_dir($dir_path))
{
    $files = opendir($dir_path);
    {
        if($files)
        {
            while (($file_name = readdir($files)) !== FALSE) 
            {
                 if ($file_name != '.' && $file_name != '..'){
                echo "<a href=".$file_name.">".$file_name."</a><br>";
                #echo "<img src=".$file_name.">";
            }

            }
        }
    }
}

?>

Returns an array of files and directories from the directory . ... I wanted to easely access data in a certain directory using foreach. I came up with the following: but it is not download

it say like this Object not found!

In these cases first you need get files of directory like following:

$dir    = './FILE_FOLDER_NAME';
$files = scandir($dir);
unset($files[0]);
unset($files[1]);

Why we used unset, these code remove . and .. from $files variable and you have just file names.

Now you can show files with this approach:

foreach($files as $key => $value):
    $path_info = pathinfo($value); //RETURN FILE EXTENTION
    ?>
    <a href="DIRECTORY_PATH<?php echo $value; ?>" target="_blank"><?php echo $value; ?>
    <?php
endforeach;

If you want to delete a file can add new button to your foreach like this:

<button href="PHPSAMPLEFILE.PHP?file=<?php echo base64_encode ($value); ?>"><?php echo 'DELETE'; ?></button>

and in your PHP file:

$file = base64_decode($_GET['file']);
$path = './DIRECTORY_PATH/'.$file;
unlink($path);

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