Om de afbeeldingen in een Gedeelde Map, of elders, in een web pagina album te tonen, heb ik dit bedacht.
Drie bestanden:
albumpath.txt
albumafbeelding.php
album.php
albumpath.txt is een tekstbestand dat de pathnaam naar een map ergens op de server bevat.
Dit bijvoorbeeld :
/volume1/Gedeelde Map/
Wil je een andere map tonen, verander je de path naam.
albumafbeelding.php is een PHP bestand dat de afbeelding ophaald en uitvoert :
<?php
$photo = $_GET['photo'];
$path = file_get_contents('albumpath.txt');
$file = $path . $photo;
if ( file_exists( $file ) )
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit();
}
?>
album.php is de webpagina die naar de browser wordt gestuurd en moet je naar eigen inzicht inrichten.
<h2>Photo Album</h2>
<style>
figure {
display:inline-block;
width: 250px;
margin: 0.500em;
}
figure img {
width: 100%;
}
figcaption {
text-align: center;
}
</style>
<?php
$path = file_get_contents('albumpath.txt');
$extensions = array("jpg", "jpeg", "png", "gif");
if ( $files = scandir( $path ) )
{
foreach ( $files as $image )
{
$imageFileType = strtolower( pathinfo( $image, PATHINFO_EXTENSION ) );
if( in_array( $imageFileType , $extensions ) )
{
$path_parts = pathinfo( $image );
$title = $path_parts['filename'];
$size = getimagesize( $path . $image );
$maxwidth = $size[0];
?>
<figure>
<img src="albumafbeelding.php?photo=<?php echo $image; ?>" style="max-width: <?php echo $maxwidth; ?>px;" />
<figcaption><?php echo $title; ?></figcaption>
</figure>
<?php
}
}
}
?>