介绍
Files Photo Gallery是一个单文件PHP目录程序,可以放置到服务器上的任何目录,立即拥有一个文件和文件夹预览目录。它支持所有文件类型,并允许您预览图像、视频、音频和代码。
链接
官网:点击进入
演示:点击进入
文档:点击进入
源码:点击进入
支持
- 单个文件只需将其放入服务器上的任何目录即可。
- 实时搜索和排序文件。
- 高级列表和库布局,可以实时切换。
- 预览 IPTC、EXIF 和 GPS 地图以查看您的照片。
- 使用缓存机制和 CDN 快速加载。
- 高级树菜单导航显示整个目录结构。
- 美丽的代码荧光笔来查看和编辑代码格式。
- 可选登录以保护访问。
安装
将下载得到的index.php文件放置到需要的网站目录,打开目录即可;
PHP版本需要5.5以上,PHP扩展程序安装需求:GD mbstring fileinfo exif
宝塔面板安装PHP时已经默认安装了GD和mbstring扩展程序,所以无需额外安装
fileinfo – 用于生成图片预览
exif – 用于读取图片EXIF信息
网站地址要设置正确,运行程序时会生成预览图片,地址错误将无法显示预览图片,搭建时可以先运行空文件目录,然后再修改网站地址,并指向正确的文件目录
破解
Files Photo Gallery是完全开源的,免费版和授权版一致,没有任何区别
只是免费版每次会弹出授权窗口,点击一下No thanks!即可关闭
破解授权有两个方法,一是JS本地化,二是JS网络化,当然JS网络化会更加方便快捷
JS本地化:
打开index.php找到代码:<script src=”<?php echo config::$assets ?>js/files.js”></script>
将其替换为:<script src=”js/files.js”></script>
再在同目录新建名为js的文件夹,然后下载files.js文件放置在其中即可,files.js在源码压缩包里点击进入
JS网络化:
打开index.php找到代码:<script src=”<?php echo config::$assets ?>js/files.js”></script>
将其替换为如下代码即可;
替换代码:
<script src=”https://cdn.jsdelivr.net/gh/sunpma/cdn/other/files.js”></script>
常用配置参数
// 根目录配置
‘root’ => ”, // 相对路径或者绝对路径,不填代表当前目录,二级目录无需 / 符号
‘start_path’ => false, // 分配加载到视图中的第一个目录,默认情况下,该目录与root目录相同
// 授权登录
‘username’ => ”, // 用户账号(留空关闭)
‘password’ => ”, // 用户密码(留空关闭)
// 排除文件或者目录
‘files_exclude’ => ”, // ‘/\.(png|jpe?g)$/i’ / 解释:排除后缀png.jpeg.jpg
‘dirs_exclude’ => ”, // ‘/\/AAA|\/doc|\/222(\/|$)/i’ / 解释:排除目录AAA.doc.222
// 菜单
‘menu_enabled’ => true // 启用或禁用左侧文件夹菜单
‘menu_show’ => true // 文件夹菜单展开或折叠
‘menu_sort’ => ‘name_asc’ // 左侧文件夹菜单排序 / name_asc,name_desc,date_asc,date_desc
// 布局
‘layout’ => ‘rows’ // 主视图区域布局,包括选项 列表,块,网格,行和列
‘sort’ => ‘name_asc’ // 主视图区域默认排序 / name_asc,name_desc,date_asc,date_desc
官方文档配置说明
<?php
// Uncomment the parameters you want to edit.
return array (
//'root' => '',
//'start_path' => false,
//'username' => '',
//'password' => '',
//'load_images' => true,
//'load_files_proxy_php' => false,
//'load_images_max_filesize' => 1000000,
//'load_svg_max_filesize' => 100000,
//'image_resize_enabled' => true,
//'image_resize_cache' => true,
//'image_resize_dimensions' => 320,
//'image_resize_dimensions_retina' => 480,
//'image_resize_dimensions_allowed' => '',
//'image_resize_types' => 'jpeg, png, gif, webp, bmp',
//'image_resize_quality' => 85,
//'image_resize_function' => 'imagecopyresampled',
//'image_resize_sharpen' => true,
//'image_resize_memory_limit' => 128,
//'image_resize_max_pixels' => 30000000,
//'image_resize_min_ratio' => 1.5,
//'image_resize_cache_direct' => false,
//'folder_preview_image' => true,
//'folder_preview_default' => '_filespreview.jpg',
//'menu_enabled' => true,
//'menu_show' => true,
//'menu_max_depth' => 5,
//'menu_sort' => 'name_asc',
//'menu_cache_validate' => true,
//'menu_load_all' => false,
//'menu_recursive_symlinks' => true,
//'layout' => 'rows',
//'sort' => 'name_asc',
//'sort_dirs_first' => true,
//'cache' => true,
//'cache_key' => 0,
//'storage_path' => '_files',
//'files_exclude' => '',
//'dirs_exclude' => '',
//'allow_symlinks' => true,
//'history' => true,
//'breadcrumbs' => true,
//'transitions' => true,
//'click' => 'popup',
//'click_window' => '',
//'click_window_popup' => true,
//'code_max_load' => 100000,
//'topbar_sticky' => 'scroll',
//'check_updates' => false,
//'allow_tasks' => false,
//'get_mime_type' => false,
//'context_menu' => true,
//'prevent_right_click' => false,
//'license_key' => '',
//'filter_live' => true,
//'filter_props' => 'name, filetype, mime, features, title',
//'download_dir' => 'zip',
//'download_dir_cache' => 'dir',
//'allow_upload' => false,
//'allow_delete' => false,
//'allow_rename' => false,
//'allow_new_folder' => false,
//'allow_new_file' => false,
//'allow_duplicate' => false,
//'allow_text_edit' => false,
//'demo_mode' => false,
//'upload_allowed_file_types' => '',
//'upload_max_filesize' => 0,
//'upload_note' => '',
//'upload_exists' => 'increment',
//'popup_video' => true,
//'popup_transition' => 'glide',
//'popup_transition_play' => 'inherit',
//'popup_interval' => 5000,
//'popup_caption' => true,
//'popup_caption_hide' => true,
//'popup_caption_style' => 'block',
//'popup_caption_align' => 'center-left',
//'video_thumbs' => true,
//'video_ffmpeg_path' => 'ffmpeg',
//'video_autoplay' => true,
//'lang_default' => 'en',
//'lang_auto' => true,
//'lang_menu' => false,
);
根 // 默认 ” (空 = 当前目录)
分配“文件”应用将从中加载文件和目录的根路径。它可以是相对路径或绝对路径。
'root' => '' // same dir as files app file
'root' => 'content' // sub-directory 'content'
'root' => '../' // parent directory
'root' => '/var/user/eddie/' // absolute path from server root
start_path // false (root)
分配加载到视图中的第一个目录,默认情况下与 root dir 相同。它可以是相对路径或绝对路径,但路径必须位于根目录内。
'start_path' => '' // start path is same as root
'start_path' => 'galleries/birds' // custom start path
用户名
添加用户名和密码以通过登录保护您的文件应用程序。
密码
添加用户名和密码以通过登录保护您的文件应用程序。密码可以使用此工具加密:
www.files.gallery/tools/hash
load_images // true
如果禁用,图像将不会加载到库中。
load_files_proxy_php // false
如果无法通过 URL 访问图像(出于任何原因),则强制通过 PHP 代理加载图像。
load_images_max_filesize // 1000000 (1MB)
可直接加载到库中的最大图像文件大小。如果文件大小超过此值,它将替换为文件 ICON。* 不会影响有效调整大小的图像。 *这样做的目的是防止大量图像直接加载到图库布局中,从而导致加载缓慢和界面缓慢。
load_svg_max_filesize // 100000 (100kb)
最大 SVG 文件大小,可直接加载到库中。如果文件超过此值,它将替换为文件 ICON。* 这样做的目的是防止复杂的 SVG 形状渲染缓慢并导致界面缓慢。
image_resize_enabled // true
允许调整加载到库中的图像的大小。
image_resize_cache // true
允许缓存调整大小的图像以提高加载速度。调整大小的图像通常会缓存在storage_path _files/cache/images/* 处。
image_resize_dimensions // 320
默认图像调整大小。适合调整大小的图像的图像宽度,以便它们在所有文件库布局中看起来都不错。
image_resize_dimensions_retina // 480
服务器更大的图像调整高密度屏幕(视网膜)的大小。这将为视网膜屏幕带来更高质量的图像,但最终会导致图像缓存的大小翻倍。如果不需要,则设置为 false。
image_resize_dimensions_allowed // ”
允许调整大小尺寸的逗号分隔列表,以及两个默认值。不直接在“文件”应用中使用,但如果要为使用“文件”的应用(如嵌入)配置其他图像大小,则非常有用。例如“640、800、1024”。
image_resize_types // ‘jpeg, png, gif, webp, bmp’
逗号分隔的图像类型列表以调整大小。例如,如果要排除PNG / GIF以保留透明度和动画,则很有用。
image_resize_quality // 85
JPG 压缩级别,用于调整大小的图像。
image_resize_function // 图像复制重采样
PHP 图像大小调整函数。在图像复制重采样(更平滑)和图像复制调整大小(更快)之间进行选择。质量差异很小,但图像复制重采样的质量更高,whIle imageCopyResize的速度是原来的两倍。例如,如果您希望在不使用缓存时更快地调整大小,则可以使用 imagecopyresize。请参阅比较。
image_resize_sharpen // true
创建更清晰(不那么模糊)的预览图像。
image_resize_memory_limit // 128
调整大图像大小时暂时增加 PHP 内存限制(如果需要)。默认值设置为 128 MB,允许将图像大小调整为 ~ 6000 像素。如果您的 PHP memory_limit已经高于此值,则不会有任何影响。
image_resize_max_pixels // 30000000
设置调整图像大小时允许的最大尺寸。默认值为 30000000(3000 像素),允许将图像大小调整为大约 6000 x 5000 像素。此选项用于防止服务器尝试调整超出功能的图像大小和/或防止性能降低。
image_resize_min_ratio // 1.5 图像调整大小目标尺寸与原始图像尺寸之间的
最小比率差异。如果原始图像仅比调整大小目标大 X 倍,则将使用原始图像。在大多数情况下,如果原始图像仅略大于调整大小目标,则创建调整大小的版本毫无意义。
image_resize_cache_direct // false
将尝试将缓存的调整大小的图像直接加载到库中,绕过文件 PHP 应用程序。可能会导致更快的加载和改进的浏览器缓存,因为图像文件直接加载到浏览器中。但是,如果启用此选项并删除图像缓存,则最终可能会丢失图像文件,因为“文件”应用不用于检测缓存的请求是否存在。如果启用此选项并且您确实删除了图像缓存,则需要将cache_key设置增加 +1。
folder_preview_image // true
在文件夹上显示预览图像。
folder_preview_default // ‘_filespreview.jpg’
始终将此文件优先作为文件夹预览图像(如果存在)。如果要为部分/所有文件夹分配特定图像,或者要分配隐藏的预览图像,或者只是想避免在每个目录中搜索要用作预览的第一个图像的性能影响,则非常有用。
menu_enabled // true
打开或关闭左侧文件夹菜单。您仍然可以从主视图区域内导航文件夹。* 如果根目录不包含任何文件夹,则菜单将始终处于禁用状态。
menu_show // true
切换左侧文件夹菜单默认展开或折叠。如果根目录中没有文件夹或菜单被禁用,则此设置将不起作用。此外,此值被浏览器“记住”,并且始终默认为每个浏览器的菜单所处的最后状态。
menu_max_depth // 5
作为预防措施,左边菜单深度限制为 5 个子文件夹级别。在许多情况下,将无限数量的子文件夹加载到菜单中是没有生产力的,因为它会很慢,并且可能无法很好地显示在菜单界面中。您可以轻松地将此值增加到更高的数量,但请注意,如果您要加载一个巨大的根目录,则加载整个树可能会非常慢。例如,如果要加载服务器的整个根目录,则加载整个树将是一项艰巨的任务。您仍然可以直接从视图区域导航到更深的文件夹级别。
menu_sort // name_asc
选择如何使用选项对文件夹菜单项进行排序name_asc、name_desc、date_asc和date_desc。
menu_cache_validate // true
启用(默认)后,将验证菜单缓存以确保它与实际文件夹结构匹配。此机制通常是必需的,以确保您所做的任何更改(新文件夹等)都经过验证,而不是菜单缓存文件。如果禁用,则仅针对根文件夹和一级文件夹验证缓存。如果您有一个具有繁重文件夹结构的持久文件库,则禁用此功能可能会很有用,在这种情况下,菜单的加载速度会快得多。请记住,如果您确实禁用了此功能,然后在子文件夹中进行更改,则需要删除菜单缓存或增加cache_key值。
menu_load_all // false
将导致菜单预加载所有页面,包括所有文件数据。这意味着一旦菜单加载,您就可以立即导航所有文件夹,而无需加载任何内容。此功能对于持久性库或简单的根文件夹结构非常有用。
menu_recursive_symlinks // true
在主菜单中列出符号链接的子目录。可能导致无害的菜单循环和/或重复的菜单项。
布局 // 行 包含选项列表、块、网格、行
和列的默认库布局。* 此值被浏览器“记住”,并且将始终默认为访问者选择的最后状态。
sort // name_asc 主视图区域中文件
的默认排序,包括选项名称、日期、文件大小和 kind。* 此值被浏览器“记住”,并且将始终默认为访问者选择的最后状态。
sort_dirs_first // true
启用后,将始终在顶部列出目录,这通常是最直观的。
缓存 // true
启用后,将为文件夹和菜单创建缓存。缓存是在storage_path中创建的,通常_files/缓存/文件夹和_files/缓存/菜单。如果您不希望文件应用程序创建任何缓存文件,请禁用此选项,例如,如果您只打算使用它 once 并删除。请记住,启用缓存后,“文件”应用程序的加载速度会快得多。
cache_key // 0
菜单缓存和文件夹缓存与cache_key进行比较。如果要强制刷新缓存(出于任何原因),可以将cache_key增加 +1。
storage_path // _files
storage_path定义了文件应用程序将在哪里创建缓存文件夹、配置和插件。在大多数情况下,您应该始终坚持使用默认值“_files”。在某些情况下,如果你不想将数据写入当前目录,或者有多个文件共享相同storage_path(和缓存)的文件应用,你可能想要使用不同的storage_path。存储路径可以是相对路径,也可以是绝对路径。
files_exclude 用于排除或包含文件的 PHP 正则表达式。通常用于排除某些文件类型,或仅包含某些扩展名。应用于所有文件的基本名称。例:
'files_exclude' => '/\.(pdf|jpe?g)$/i' // exclude all pdf, jpg and jpeg files, case-insensitive.
dirs_exclude 用于排除目录的 PHP 正则表达式。适用于所有目录和文件的根相对路径。
'dirs_exclude' => '/\/eleph|\/football(\/|$)/i', // exclude dirs that start with "eleph" and dirs that match /football/ (and everything within).
allow_symlinks // true
允许文件应用程序在列表和菜单中显示和跟踪符号链接。
历史 // true
启用历史记录后,浏览器将在您导航目录时更改 URL ?路径/到/文件夹。这还允许您在共享 URL 时直接深层链接到文件和目录。如果禁用,则导航时 URL 将永远不会更改。
面包屑 // true
启用顶栏中的“面包屑”界面元素,允许用户轻松导航到父目录。如果 root 不包含任何文件夹,则痕迹导航将始终处于禁用状态。
转换 // true
在前端启用各种转换。
点击 // ‘弹出窗口’
选择在单击主视图区域中的项目时触发 [弹出窗口、模式、下载、窗口或菜单] 的方法。默认值“popup”将适用于所有图像文件,但对于非图像文件,将回退到“modal”。
click_window // ”
逗号分隔的文件扩展名列表,您希望在单击时直接在新窗口中打开。有助于轻松查看 PDF、HTML 和文本文件,而不是先在“文件”应用程序中打开预览。
click_window_popup // true
以“弹出窗口”而不是新选项卡的形式打开新窗口。在打开和查看 PDF、HTML 和文本类型文档时很有用。* 不适用于移动设备,移动设备大多会像往常一样在新窗口中打开。
code_max_load // 100000 (100kb) 代码文件(PHP、JS、CSS 等)
的最大文件大小,可直接在文件代码编辑器中加载和显示。对于非常大的文件,代码编辑器可能很慢,并且将它们自动加载到编辑器中没有用。
topbar_sticky // “滚动”
选择顶栏如何通过选项真、假和“滚动”将自身连接到屏幕。
check_updates // 错误
检查文件应用程序更新。如果有可用更新,则在右上角显示“铃铛”图标,允许您“更新”,“下载”或“阅读更多”。
allow_tasks // null
* 尚未记录或可供公众使用。
get_mime_type // false
设置为 true 以从服务器(慢)而不是从扩展名(快速)获取文件MIME类型。这应该是不必要的,除非您有许多文件没有正确的文件扩展名,或者出于安全原因想要在服务器上验证文件类型。
context_menu // true
设置为 false 以禁用上下文菜单按钮和右键单击菜单。
prevent_right_click // false 设置为 false
以阻止浏览器右键单击敏感项(图像、列表项、菜单)。
license_key // ”
在此处插入许可证密钥以防止许可证弹出和解锁功能。
filter_live // 真正的
键盘输入实时搜索过滤。如果禁用,输入滤波需要“返回”或取消聚焦才能触发。如果文件夹中有 1000 个文件,则很有用。* 不适用于移动设备,这些设备会在“搜索”或键盘隐藏时触发。
filter_props // “名称、文件类型、MIME、功能、标题”
过滤时要使用的文件属性。属性越多意味着处理速度越慢。可用属性:名称、文件类型、MIME、功能、标题、标题、描述、创建者、信用、版权、关键字、城市、子位置、省-州。
download_dir // ‘zip’ / ‘files’ / ” false
添加一个按钮,用于将目录中的所有文件下载为 zip。(可选)设置为“文件”以进行批量多文件下载(有用,但仅适用于桌面)。通过设置为“”(空)或 false 来禁用。
download_dir_cache // “目录” / “存储” / “” /
在每个目录中启用创建的 ZIP 文件的缓存(推荐)。如果禁用,每次下载单击都需要即时创建 ZIP 文件,如果有许多文件要压缩,这可能会很慢。默认情况下,zip 文件将存储在每个目录(最有效的选项)中。如果您不想影响文件夹,请设置为“存储”以将 zip 文件存储在 _files/zip/* 中。
allow_upload // 假
允许上传文件。
allow_delete // 假
允许删除文件。
allow_rename // 假
允许重命名文件。
allow_new_folder // 假
允许创建新文件夹。
allow_new_file // 假
允许创建新文件。
allow_duplicate // 假
允许复制文件。
allow_text_edit // false
允许编辑文本/代码文件。
demo_mode // false
启用后,所有文件管理器操作都将被阻止。主要用于文件应用演示。
upload_allowed_file_types // ”
允许上传的文件类型的逗号分隔列表。设置为空(默认值)时,允许所有文件类型。项目可以是扩展名或具有部分匹配的 MIME 类型,例如“pdf、dog、image/*”。
upload_max_filesize // 0
设置上传的最大文件大小。0 表示“无限制”,但文件大小将始终受您的 PHP upload_max_filesize限制。
upload_note // ”<</b20>b1158> 在上传者底部添加一个小的文字注释。例如“最大文件大小 %upload_max_filesize%”。
upload_exists // ‘increment’
决定如果上载目标文件夹中已存在上载的文件名该怎么办。“增量”(默认)将重命名上传的文件,使其不会覆盖现有文件名。例如,“文件名.jpg”将变为“文件名-2.jpg”。“覆盖”将简单地覆盖具有相同文件名的现有文件,而“失败”将导致上传的文件在存在相同文件名时失败。
popup_video // true
在弹出窗口(而不是模态)中打开视频格式。
popup_transition // “滑动”
指定弹出过渡样式:无、滑动、滑动、淡入淡出、缩放、弹出、弹性。
popup_transition_play // “继承”
在幻灯片“播放”模式下指定弹出过渡样式。默认的“继承”将使用与popup_transition选项相同的过渡。
popup_interval // 5000
在弹出“播放”模式下设置幻灯片之间的间隔(以毫秒为单位)。
popup_caption // true
显示弹出标题,从各种文件属性创建。
popup_caption_hide // true
几秒钟后自动隐藏弹出标题,无需用户交互。
popup_caption_style // ‘block’
分配弹出式标题样式:块、框、渐变、顶栏、无。
popup_caption_align // “中左”
弹出标题左对齐、中左对齐、居中对齐或右对齐。
video_thumbs // true
为视频文件创建缩略图。需要 FFmpeg 和 PHP exec()。
video_ffmpeg_path // ‘ffmpeg’
用于创建视频缩略图的 FFmpeg 路径。通常只是“ffmpeg”,但有些服务器需要 ffmpeg 应用程序
的完整路径video_autoplay // 点击打开时真正的
自动播放视频。
lang_default // ‘en‘ 默认界面语言(如果不支持浏览器语言)og ‘lang_auto’
被禁用。
lang_auto // true
根据检测到的浏览器语言自动分配界面语言。
lang_menu // false
在顶部栏中显示下拉菜单以进行语言选择