HomeHome
border border Fsphpgallery Mod J border border
Screenshot File-system based PHP image gallery, fully compatible with Chrome, Firefox, Internet Explorer, Edge,....
No database is required: this image gallery just use informations stored in IPTC and EXIF tags of JPEG images.
IPTC informations allow you to put copyright, caption and other comments for each image.
EXIF informations are fill by your camera and contains technical details
This way of storage avoid to have a database, and as your informations are stored inside your image file, until you loose your image, you can't loose associated informations.
Work even if browser's scripts are disabled.
You can mix folders and images without any trouble.
Provides Slideshow
Language interface fully configurable
Fsphpgallery Mod J galleries can be linked between them from different servers.
You can mix local and remote gallery
 
Last Update  April 03 2018
Version  2.0.14
Example  Image Gallery
Source Code
Download Source Code  Sources v2.0.14 438 Kb
Compatibility  Windows, Linux, Unix; php 4 or upper with the gd module
License  Freeware under GPL license
Language  PHP
Status
 Maintained / Improvements if required Improvement Request 
border border border border

border border User Manual border border
   - Options
   - How to add copyright or edit images IPTC informations ?
   - How to link to other galleries ?
   - How to generate all resized images instead of letting them generating themself as first use (which is quite long for first gallery browsing) ?

Options
All configuration options are in the config.php file in the gallery root folder
Options are the following :
  1. $imagePath= "../images";// images root directory of your gallery
  2. $cacheDir = "../cache"; // the directory in which to store the cache of local pictures
  3. $RemoteDirConfigFileName= "remote_dir.txt"; // name of file put in any directory for making
  4. // link for remote gallery or remote gallery subdirectory
  5. // syntax for these files is the following for each line :
  6. // RemoteServerGalleryIndexDirLink,RelativePathFromRemoteGalleryImagesRootDir,ShownName,bool open in new window
  7. // ShownName is realy useful if you want to link to another root gallery
  8. //
  9. // example : http://220.20.16.104/Gallery/,Birdthday,Birthday,true
  10. // http://220.20.16.105/Gallery/,Party/Halloween,Halloween Party,false
  11. // http://220.20.16.106/Gallery/,,Holidays,false
  12. // (last one for referencing remote gallery root directory)
  13.  
  14. // web page configuration
  15. $itemsInRow = 3; // how many items in each row
  16. $numberOfRows = 3; // the number of rows per page
  17.  
  18. // thumbs size
  19. // note : portrait size will be
  20. // $thumb_portrait_width=$thumb_landscape_height
  21. // and $thumb_portrait_height=$thumb_landscape_width
  22. $thumb_landscape_width=160;
  23. $thumb_landscape_height=120;
  24.  
  25. // img preview size
  26. // note : portrait size will be
  27. // $img_preview_portrait_width=$img_preview_landscape_height
  28. // and $img_preview_portrait_height=$img_preview_landscape_width
  29. $img_preview_landscape_width=640;
  30. $img_preview_landscape_height=480;
  31.  
  32. $showFileName=false;
  33. $show_date=true;
  34. $dd_mm_yy_date=true;// date presentation. default is mm/dd/yyyy put to true for dd/mm/yyyy
  35. $show_hour=false;
  36. $show_caption=true;
  37. $show_source=true;
  38. $show_copyright=true;
  39. $show_iptc_info=true;
  40. $show_exif_info=true;
  41. $showBottomNavBar=false;// show bottom navigation bar
  42. $showGalleryInfoOnlyForHome=true;// show $fsphpgallery_info content only for home page
  43. $show_slideshow=true;
  44. $looping_slideshow=false; // true slideshow doesn't stop at the end of directory but restart with first image
  45. $slideshow_speed=4000; // time in ms
  46. $links_color="#5D92F1";
  47. $links_font_weight="bold";
  48. $background_color="#FFFFFF";// you will need to modify some png images as Internet Explorer dislike png transparency
  49. // so it's better to put your background color as background color for png images
  50. $home_caption="Home";
  51. $next_caption="Next";
  52. $prev_caption="Previous";
  53. $up_dir_caption="Upper Directory";
  54. $folder_caption="Folder Image";
  55. $click_to_enlarge_caption="Click to Enlarge";
  56. $show_hide_iptc_caption="Show / Hide General informations";
  57. $show_hide_exif_caption="Show / Hide Technical informations";
  58. $enable_slideshow_caption="Slideshow";
  59. $disable_slideshow_caption="Stop Slideshow";
  60.  
  61. // abuse config
  62. $abuseReports = false; // if you want to be emailed if someone tries to abuse the script
  63. $email = "yourmail@yourprovider.com"; // your email address
  64. /* header and footer customizing */
  65. $page_title="Image Gallery";
  66. // header for home of the gallery
  67. $home_header="<h1 align=\"center\">Welcome To Image Gallery</h1>";
  68.  
  69. $fsphpgallery_info="<p align=\"center\"\"><i>Powered by <a href=\"http://jacquelin.potier.free.fr\"
  70. target=\"_blank\">FsPHPGallery mode J</a> originally based on
  71. <a href=\"http://gallery.devrandom.org.uk\" target=\"_blank\">FsPHPGallery</a>,
  72. a file-system based PHP image gallery.</i></p>\n";
  73.  
  74. $fsphpgallery_header="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
  75. ."<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
  76. \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
  77. ."<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">\n"
  78. ."<head>\n"
  79. ."<title>$page_title</title>\n"
  80. ."<meta http-equiv=\"Page-Enter\" content=\"blendTrans(Duration=0.2)\">\n"
  81. ."<meta http-equiv=\"Page-Exit\" content=\"blendTrans(Duration=0.2)\">\n"
  82. ."<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"
  83. ."<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n"
  84. ."<style type=\"text/css\"><!--\n"
  85. ."a:hover {font-weight: $links_font_weight; color: $links_color;text-decoration: none;}\n"
  86. ."a:link {font-weight: $links_font_weight; color:$links_color;}\n"
  87. ."a:visited {font-weight: $links_font_weight; color: $links_color;}\n"
  88. .".class_link_color {color: $links_color;font-weight: $links_font_weight;}\n"
  89. ."body {background-color: $background_color;}\n"
  90. ."--></style>\n"
  91. ."</head>\n"
  92. ."<body>\n";
  93.  
  94. $fsphpgallery_footer= "</body>\n"
  95. ."</html>\n";

How to add copyright or edit images IPTC informations ?
First you can referer to your favorite image software documentation by searching "IPTC", as lot of image softwares allow to do this.

Next if you don't find any informations, just use IrfanView which is a very good freeware.
To add/modify IPTC information with this software, open your jpeg file, and next go to "Image/Information" and then click the "IPTC info" button.


To quickly add copyright (or the same iptc info) on multiple images, use ExifTool, a free command line tool.
By the way to add a copyright to all your images just write the following command line
exiftool -iptc:copyrightnotice="Jacquelin POTIER 2007 jacquelin.potier@spam.fr" *.jpg


How to link to other galleries ?

To link your gallery to another one, create a text file in the folder you want remote(s) gallery(ies) appear like subfolder.
Rename this file according your $RemoteDirConfigFileName var defined in config.php ("remote_dir.txt" in the previous example).

Syntax for these files is the following for each line :
RemoteServerGalleryIndexDirLink,RelativePathFromRemoteGalleryImagesRootDir,ShownName,bool open in new window

Where :
RemoteServerGalleryIndexDirLink : is a link to the remote gallery directory containing the index.php file of FsphpgalleryModJ
RelativePathFromRemoteGalleryImagesRootDir : is the remote relative path from remote imagepath directory.
Example : if you want to access ../images/subdir1/subdir2, you will put subdir1/subdir2 in your config file.
Just put nothing if you want to access the home of the gallery.
ShownName : a remote gallery directory name replacement. If you link to home of a gallery, you can put a frendly name like "My friends Gallery"
open in new window : true if you want the linked gallery opens itself in a new window, false if you want remote gallery appears like a local subfolder

Configuration file examples :
http://220.20.16.104/Gallery/,Birdthday,Birthday,true
"http://220.20.16.104/Gallery/" is the path containing index.php, we want to link to subfolder Birthday of the remote gallery, we let folder name unchanged and we open gallery in a new window

http://220.20.16.105/Gallery/,Party/Halloween,Halloween Party,false
"http://220.20.16.104/Gallery/" is the path containing index.php, we want to link to subfolder Party/Halloween of the remote gallery, we change folder name to "Halloween Party", and gallery act like a local subfolder

http://220.20.16.106/Gallery/,,Holidays,false
"http://220.20.16.104/Gallery/" is the path containing index.php, we want to the home of the remote gallery, we set pseudo folder name to "Holidays", and gallery act like a local subfolder

How to generate all resized images ?
To generate all thumbs, you can use either a free software like IrfanView (File / Batch Conversion) or use the php script "make_all_thumbs.php" which is slower but portable.
To earn some time and server resources, you can generate all images (which are put in your cache directory) on your debug server.
Doing this will speed first gallery visit.
During the all thumbs generation (it can takes more than 30sec), php get a timeout for execution, so page will be auto refreshed until all the thumbs are generated

Top
border border border border

border border Known Troubles border border
Report new bug
  - None Yet
Top
border border border border
Fsphpgallery Mod J image file gallery file based gallery fsphpgallerymodj fsphpgallery image gallery image gallery image galerie php freeware open sourcePHP open source image gallery: File-system based image gallery. Extract IPTC and EXIF informations of JPEG images