在线翻译复制而成!安装安装文件应用程序非常简单,因为它只是一个文件。只需下载最新的文件index.php,将其放入您要查看或管理的文件夹中并加载到浏览器中。下载下载最新的文件应用index.php放入您要查看或管理的文件夹。将您的浏览器指向它上传的位置。重命名index.php您可能已经有一个文件index.php,或者您只是想通过不同的url访问Files应用程序。只需重命名并加载到浏览器中index.php。anythingyouwant.php存放_files路径首次运行后,Files应用程序将创建一个文件夹_files,用于存储缓存、配置和可选的包含文件。阅读更多服务器诊断?check=1您可以通过附加到URL来测试您的PHP和服务器的各种功能[参见演示]配置可选配置尽管有许多配置选项,但除非您确实需要,否则无需进行更改。在大多数情况下,您只需将文件应用程序放入任何文件夹并使用默认选项即可。还有高级javascript配置选项和CSS样式选项。config.php首次运行文件应用程序后,_files/config/config.php将创建配置文件,并注释掉所有默认配置选项。_files/config/config.php<?php//Uncommenttheparametersyouwanttoedit.returnarray(//'root'=>'',//'start_path'=>false,//'username'=>'',//'password'=>'',//'load_images'=>true,//'load_files_proxy_php'=>false,//'load_images_max_filesize'=>1000000,//'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,//'sort_function'=>'locale',//'cache'=>true,//'cache_key'=>0,//'storage_path'=>'_files',//'files_exclude'=>'',//'dirs_exclude'=>'',//'allow_symlinks'=>true,//'title'=>'%name%[%count%]',//'history'=>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_exists'=>'increment',//'popup_video'=>true,//'video_thumbs'=>true,//'video_ffmpeg_path'=>'ffmpeg',//'video_autoplay'=>true,//'lang_default'=>'en',//'lang_auto'=>true,);复制编辑配置要编辑选项,请在任何编辑器中打开config.php文件并找到要更改的属性。//'root'=>'',复制通过删除取消注释选项//,更改值并保存:'root'=>'../different/path',复制我可以直接在index.php中编辑配置选项吗?您可以直接在index.php中编辑配置选项,但如果/当您升级Files应用程序时,更改将会丢失。仅当您的文件应用程序是临时/非持久性时才执行此操作。配置选项root分配加载文件和目录的根路径。使用默认空''值,root是当前目录。路径可以是相对的或绝对的。例子:'root'=>'',//defaultcurrentdirectory,sameas'./''root'=>'content',//sub-directory'content',sameas'./content''root'=>'../',//parentdirectory'root'=>'/var/user/eddie/',//absolutepathfromserverroot复制start_path分配加载到视图中的第一个目录,默认为根目录。它可以是相对路径或绝对路径,但目录必须在root目录内。'start_path'=>'',//startpathissameasroot'start_path'=>'galleries/birds',//customstartpathrelativetoapp复制username添加用户名和密码以通过登录保护您的文件应用程序。'username'=>'myusername',复制password添加用户名和密码以通过登录保护您的文件应用程序。如果您不希望密码在PHP文件中暴露,您可以使用我们的md5()哈希工具来加密您的密码。'password'=>'mypassword',//non-encrypted'password'=>'$2y$10$KGVfb/j9GyxQYha6bQtYEuredsqfEMs7FQEyuoEFEgIRQAdb9gQES',//encrypted复制load_images加载预览图像。如果禁用,图标将代替图像显示。'load_images'=>true,//true|false复制load_files_proxy_php如果无法通过URL访问图像和文件,则强制通过PHP代理加载。'load_files_proxy_php'=>false,//true|false复制load_images_max_filesize直接加载到画廊的最大图像文件大小。如果图像文件大小超过此值,则会显示文件图标。此选项可用于防止大量图像直接加载到布局中,并且仅在您禁用image_resize_enabled.'load_images_max_filesize'=>1000000,//1000000bytes~1mb复制image_resize_enabled允许调整加载到画廊中的图像大小,强烈建议这样做。通常应与image_resize_cache启用一起使用。如果禁用,将加载原始源图像,这可能会很慢'image_resize_enabled'=>true,//true|false复制image_resize_cache允许缓存调整大小的图像,以显着提高连续访问的加载速度。调整大小的图像通常会缓存在您的storage_pathat中_files/cache/images/*。'image_resize_cache'=>true,//true|false复制image_resize_dimensions默认调整大小的图像尺寸。默认320是可见质量和文件大小之间的良好平衡。'image_resize_dimensions'=>320,复制image_resize_dimensions_retina调整高密度(视网膜)屏幕的图像尺寸。这使您可以为HiDPI屏幕提供更高质量的图像,但代价是文件大小稍大,缓存文件更多。如果要禁用它,请将此选项设置为0。'image_resize_dimensions_retina'=>480,复制image_resize_dimensions_allowed除了两个默认值之外,允许的调整大小尺寸的逗号分隔列表。不直接在文件应用程序中使用,但如果您想为使用文件的其他应用程序(例如嵌入应用程序)配置额外的图像大小,则很有用。例如“640、800、1024”。'image_resize_dimensions_allowed'=>'',//empty,onlyimage_resize_dimensionsandimage_resize_dimensionsallowed'image_resize_dimensions_allowed'=>'640,800,1024',//additionalresizedimensions[640,800,1024]allowed复制image_resize_types要调整大小的图像类型的逗号分隔列表。例如,如果您想排除PNG/GIF图像以保留透明度和动画,这很有用。'image_resize_types'=>'jpeg,png,gif,webp,bmp',复制image_resize_quality调整大小图像的JPG压缩级别。'image_resize_quality'=>85,复制image_resize_function在imagecopyresampled(更平滑)和imagecopyresized(更快)之间进行选择。差异很小,但是如果您想在不使用图像调整大小缓存时更快地调整大小,则可以使用imagecopyresized。'image_resize_function'=>'imagecopyresampled',复制image_resize_sharpen创建更清晰(不太模糊)的预览图像。'image_resize_sharpen'=>true,复制image_resize_memory_limit调整大图像大小时临时增加PHP内存限制(如果需要)。默认值设置为128MB,这允许将图像大小调整到~6000像素。如果您的默认PHPmemory_limit已经高于指定的值,则它将无效。'image_resize_memory_limit'=>128,//number复制image_resize_max_pixels设置调整图像大小时允许的最大像素(尺寸)。默认值为30000000(30兆像素),它允许将图像大小调整到大约6000x5000像素。此选项可防止服务器尝试调整图像大小超出功能和/或防止性能下降。'image_resize_max_pixels'=>30000000,//number复制image_resize_min_ratio图像调整大小目标尺寸与源图像尺寸之间的最小比率差异。如果源图像仅比调整大小目标大X倍,则将使用源图像。如果源仅比调整大小的目标稍大,则创建调整大小的图像是没有意义的。'image_resize_min_ratio'=>1.5,//number复制image_resize_cache_direct将尝试绕过PHP代理将缓存的调整大小图像的直接路径加载到图库中。可能会导致更快的图像加载和浏览器缓存。但是,如果启用此选项并删除图像缓存,则最终可能会丢失图像文件,因为您绕过了检查缓存调整大小图像是否存在的PHP代理。如果启用此选项并且您删除了图像缓存,您可能需要增加cache_key.'image_resize_cache_direct'=>false,复制folder_preview_image尝试为所有文件夹加载预览图像。这在大型文件夹和/或慢速服务器上可能会很慢。'folder_preview_image'=>true,复制folder_preview_default如果文件夹中存在此文件名,请始终将此文件名优先作为文件夹预览图像。如果您想为某些文件夹分配特定图像,或者如果您想分配隐藏的预览图像,或者如果您只是想避免扫描每个目录以将第一张图像用作预览的性能损失,这很有用。'folder_preview_default'=>'_filespreview.jpg',复制menu_enabled打开或关闭左侧文件夹菜单。您仍然可以在主视图区域内导航文件夹。*如果根目录不包含任何文件夹,菜单将始终被禁用。'menu_enabled'=>true,复制menu_show切换左侧文件夹菜单默认展开或折叠。此选项对小屏幕(移动设备)无效,默认情况下菜单始终折叠。浏览器在切换时会记住该值,并且始终默认为菜单所处的最后状态。'menu_show'=>true,复制menu_max_depth分配递归文件夹的最大深度以加载到左侧菜单中。这是防止将无限级别的文件夹加载到菜单中的预防措施,这对于大型目录结构可能会很慢且效率低下。用户仍然可以直接从视图区域导航到更深的文件夹级别。'menu_max_depth'=>5,复制menu_sortname_asc使用选项、name_desc和决定左侧文件夹菜单的排序date_asc方式date_desc。'menu_sort'=>'name_asc',//name_asc,name_desc,date_asc,date_desc复制menu_cache_validate启用后,将验证菜单缓存以确保它与实际文件夹结构匹配。这种机制通常是必要的,以确保您所做的任何更改(新文件夹等)与菜单缓存文件相比得到验证。如果禁用,菜单将加载更快,但缓存仅针对根和根子文件夹进行验证。如果您有一个沉重但持久(不变)的文件夹结构,并且希望菜单快速加载,此功能可能很有用。如果启用并且您在子文件夹(新文件夹)中进行了更改,您将需要删除菜单缓存_files/cache/menu/*或增加选项cache_key。'menu_cache_validate'=>true,复制menu_load_all启用后,菜单中的所有文件夹都将预加载。单击菜单中的项目时,页面将立即显示而无需加载。此功能对于持久画廊和/或简单的根文件夹结构很有用。'menu_load_all'=>false,复制menu_recursive_symlinks在主菜单中列出符号链接的子目录。可能会导致无害的菜单循环或菜单中的重复项。'menu_recursive_symlinks'=>true,复制layout选项列表、图像列表、块、网格、行或列的默认画廊布局。布局还通过顶部栏布局下拉菜单进行控制,在这种情况下,它将覆盖默认布局。'layout'=>'rows',//list,imagelist,blocks,grid,rows,columns复制sort根据选项名称、日期、文件大小和种类(文件类型)按升序或降序对文件进行默认排序。排序还通过顶部栏排序下拉菜单进行控制,在这种情况下,它将覆盖默认排序。'sort'=>'name_asc',//name_asc,name_desc,date_asc,date_desc,filesize_asc,filesize_desc,kind_asc,kind_desc复制sort_dirs_first启用后,文件夹与文件混合时总是首先显示。'sort_dirs_first'=>true,复制sort_function分配用于对文件名进行排序的排序函数。使用默认locale选项,排序由JavascriptlocaleCompare()处理,它对cAsE不敏感的编号名称[2name<10name]进行排序,并根据浏览器区域设置解析unicode[èáø]。或者,basic排序稍微快一些,但可能无法正确解析编号名称和unicode。您还可以指定一个locale,它决定了用于localeCompare()排序的语言。'sort_function'=>'locale',//'locale','basic','[locale]'复制cache启用后,将为菜单和文件夹创建JSON缓存文件。强烈建议这样做,因为它允许菜单和文件夹在首次访问后加载得更快。缓存通常在_files/cache/*.如果您不希望“文件”应用创建和缓存文件,可以禁用此选项。'cache'=>true,复制cache_key缓存数据与cache_key进行了验证。虽然缓存通常会自动更新,但是如果你想强制缓存刷新,你可以增加cache_key的数量。'cache_key'=>0,复制storage_path定义Files应用程序将在何处存储缓存、配置和其他应用程序数据。默认设置为_files,这意味着所有数据都将存储在_files/*相对于应用程序的文件夹中。您通常不需要更改此值,除非您想将数据存储在不同的位置,或者如果您有多个共享同一存储的文件应用程序。存储路径可以是绝对的,也可以是相对于应用程序的。'storage_path'=>'_files',复制files_excludePHP正则表达式通常用于排除或仅包含某些文件类型和文件夹。正则表达式应用于不带路径的文件名(basename)。您可以在phpliveregex.com测试正则表达式。'files_exclude'=>'',//emptydefault,nofilesareexcluded'files_exclude'=>'/\.(pdf|jpe?g)$/i',//excludesallfilesthatendwith.pdf,.jpegand.jpg/caseinsensitive复制dirs_exclude用于排除某些路径和文件夹的PHP正则表达式。正则表达式应用于相对于根目录的文件夹路径。'dirs_exclude'=>'',//emptydefault,nofoldersareexcluded'dirs_exclude'=>'/\/eleph|\/football(\/|$)/i',//excludedirsthatstartwith"eleph"anddirsthatmatch/football/*复制allow_symlinks允许“文件”应用显示和遵循符号链接。大多数情况下都可以正常工作,但是如果您的符号链接指向具有不同权限的磁盘上的位置或指向不在网站文档根目录中的位置,您可能会遇到问题。'allow_symlinks'=>true,复制title分配自定义页面<title>。您可以包含变量%name%和。如果您需要高级行为,则可以使用高级javascript中的函数。%path%%count%_c.config.title'title'=>'%name%[%count%]',//'title'=>'Mywebsitename›%name%[%count%]',//examplewithcustomstringprepended复制history启用后,浏览器将在您浏览文件夹时更改URL?path/to/folder。这也允许在共享URL时直接深度链接到文件和文件夹。'history'=>true,复制transitions在页面之间导航时启用转换。'transitions'=>true,复制click选择单击列表中的项目时触发的方法。默认值“popup”将适用于所有图像/视频文件,对于非图像文件回退到“modal”。'click'=>'popup',//popup,modal,download,windowormenu复制click_window单击时要在新窗口中直接打开的文件扩展名的逗号分隔列表。用于轻松查看PDF、HTML和文本文件,而不是先在文件应用程序中打开预览。'click'=>'',//empty,allfiletypesopeninclickdefault'click'=>'pdf,html',//OpensPDFandhtmlinnewbrowserwindow,allowingthemtobepreviewed复制click_window_popup从click_window弹出式浏览器窗口中打开浏览器窗口,覆盖当前窗口。在预览PDF、html和文本类型文档时很有用。*不适用于移动设备,新窗口将正常打开。'click_window_popup'=>true,复制code_max_load在代码查看器/编辑器中加载和预览的文本/代码文件的最大文件大小。这样做的目的是防止大量文本文件导致代码语法高亮显示界面迟钝。'click_window_popup'=>100000,//default100000~100kb复制topbar_sticky选择顶栏如何将自己附加到屏幕。默认值scroll将在向上滚动时将顶部栏附加到屏幕顶部,true将导致顶部栏始终保持固定,同时false将禁用固定顶部栏并恢复正常行为。'topbar_sticky'=>'scroll',//'scroll',true,false复制check_updates检查文件应用程序更新,如果有可用更新,则在顶部栏中显示铃铛图标,允许用户“更新”、“下载”或“阅读更多”。'check_updates'=>false,复制allow_tasks用于管理缓存的任务插件。*尚未记录。'allow_tasks'=>null,复制get_mime_type设置为true以从服务器/PHP(慢)而不是从文件扩展名(更快)检测文件mime类型。这应该不是必需的,除非您的文件类型具有不正确的文件扩展名,或者出于安全原因您想要验证服务器上的文件类型。'get_mime_type'=>false,复制context_menu启用上下文菜单按钮和带有选项的右键单击菜单。'context_menu'=>true,复制prevent_right_click启用以阻止敏感项目(图像、列表项、菜单)上的浏览器右键单击菜单。'prevent_right_click'=>false,复制license_key在此处插入许可证密钥以解锁功能并删除许可证弹出窗口。'license_key'=>'XX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX',复制filter_live对键盘输入进行实时搜索过滤。如果禁用,输入过滤器需要键盘返回或取消聚焦才能触发,如果您在文件夹中有1000个文件并希望防止不必要地触发慢速过滤,这可能很有用*不适用于移动设备,它总是在“搜索”时触发或键盘隐藏。'filter_live'=>true,复制filter_props过滤时要使用的文件属性,属性越多处理越慢。属性名称、文件类型和mime适用于所有文件类型,而特征、标题、标题、描述、创建者、信用、版权、关键字、城市、子位置和省州可用于具有IPTC元的图像文件。'filter_props'=>'name,filetype,mime,features,title',//default'filter_props'=>'name,filetype,mime,features,title,headline,description,creator,credit,copyright,keywords,city,sub-location,province-state',//all复制download_dir设置为zip添加一个选项以将文件夹中的所有文件下载为zip文件。此选项需要PHPZipArchive,并且要求服务器在提供之前先将所有文件压缩到zip中(这可能会很慢,直到它被缓存download_dir_cache)。或者,设置files为直接在浏览器中下载多文件,这在桌面上可以很好地工作,而不必先在服务器上压缩文件,但在移动设备上不起作用。'download_dir'=>'zip',//'zip','files',''(disabled)复制download_dir_cachedownload_dir设置选项时,启用了创建ZIP文件的缓存zip。出于性能考虑,建议这样做,这样就无需在每次访问者点击下载时都创建zip文件。设置为直接dir存储_files.zip在当前文件夹或设置storage为存储在里面_files/zip/*。默认dir选项最有效,因为它允许文件应用程序检查zip缓存是否有效和更新,即使您更改文件夹名称也是如此。'download_dir_cache'=>'dir',//'dir'/'storage'/''/复制allow_upload允许上传文件。'allow_upload'=>false,//true|false复制allow_delete允许删除文件。'allow_delete'=>false,//true|false复制allow_rename允许重命名文件。'allow_rename'=>false,//true|false复制allow_new_folder允许创建新文件夹。'allow_new_folder'=>false,//true|false复制allow_new_file允许创建新文件。'allow_new_file'=>false,//true|false复制allow_duplicate允许复制文件。'allow_duplicate'=>false,//true|false复制allow_text_edit允许编辑文本和代码文件。'allow_text_edit'=>false,//true|false复制demo_mode启用后,将阻止所有文件管理器操作。主要用于Files应用演示。'demo_mode'=>false,//true|false复制upload_allowed_file_types允许上传文件类型的逗号分隔列表。列表可能包含部分匹配的扩展名或mime类型,例如pdf,doc,image/*.如果为空(默认),则允许所有文件类型。'upload_allowed_file_types'=>'',//default,allfiletypesareallowed'upload_allowed_file_types'=>'pdf,doc,image/*',//*.pdf,*.docandallimagetypesareallowed复制upload_max_filesize设置允许上传的最大文件大小(字节)。默认值0表示没有限制,但最大文件大小将始终受到服务器的PHPupload_max_filesize值的限制。'upload_max_filesize'=>0,//default,nolimit'upload_max_filesize'=>1000000,//maximumfilesize1000000~1MB复制upload_exists如果上传的文件名已存在于上传目标文件夹中,则决定如何处理。默认'increment'将通过附加一个数字重命名上传的文件,'overwrite'将覆盖现有文件,而'fail'将导致上传失败。'upload_exists'=>'increment',//incrementfilename,forexamplefilename.jpg=>filename-2.jpg'upload_exists'=>'overwrite',//overwriteexistingfileiffilenameexists'upload_exists'=>'fail',//uploadfailoffilenameexists复制popup_video启用后,在弹出窗口中打开视频格式,允许用户在其他弹出项目之间导航。如果禁用,视频将以简单模式打开。'popup_video'=>true,复制video_thumbs为视频文件创建缩略图。此选项需要启用FFmpeg和PHPexec()。处理视频缩略图很慢,但它们会像调整大小的图像一样被缓存'video_thumbs'=>true,//true|false复制video_ffmpeg_path用于创建视频缩略图的FFmpeg命令行路径。通常只是“ffmpeg”,但有些服务器需要FFmpeg应用程序的完整路径。'video_ffmpeg_path'=>'ffmpeg',复制video_autoplay当用户单击以在弹出窗口中打开视频时自动播放视频。'video_autoplay'=>true,复制lang_default如果浏览器语言不受支持或被lang_auto禁用,则默认界面语言。'lang_default'=>'en',复制lang_auto根据检测到的浏览器语言自动分配界面语言。'lang_auto'=>true,CSS样式多亏了CSS变量,您可以轻松更改文件应用程序中的许多样式,而无需付出太多努力。只需创建一个文件_files/css/custom.css,并包含您自己的CSS变量。例如,要从seagreen更改主要原色::root{--primary-color:deeppink;}复制结果将如下所示:--primary-color=deeppinkCSS属性您将在下面找到所有现有自定义属性的列表。:root{--primary-color:seagreen;--popup-bg:#000;--popup-placeholder-bg:#222;--popup-timer-color:white;--popup-caption-max-width:640px;--popup-caption-font-size:.9rem;--popup-caption-font-weight:300;--popup-caption-line-height:135%;--popup-caption-color--popup-caption-item-space:.35em;--popup-caption-line-clamp:3;--files-data-top:0;--files-data-display:none;--files-data-display-hover:block;--files-data-animation:opacity.2s;--grid-height:100%;--grid-font-size:14px;--list-max-width:1040px;--rows-height:auto;--rows-justify-content:space-evenly;--rows-flex-grow:1;--sidebar-width:calc(10vw+180px);--sidebar-width-small:85vw;--sidebar-width-hover:480px;--menu-font-size:16px;--menu-line-height:30px;--menu-folder-icon-size:22px;--menu-text-indent:6px;--menu-icon-toggle-opacity:0;}复制自定义CSS样式也可以包含您自己的CSS样式。但是,这需要对CSS和HTML有很好的理解,因为您最终可能会破坏界面。FFmpeg视频预览视频预览图像需要在服务器上安装FFmpeg。ffmpeg.org如果它是您自己的服务器或者您具有命令行访问权限,则可以安装此工具。如果您在共享主机上,您不太可能访问FFmpeg,但您可以随时询问您的托管服务。视频预览性能创建视频预览图像可能会很慢,这可能是因为打开视频和导航帧以提取预览图像帧的内部过程。首次创建预览后,它将被缓存,因此在连续访问时加载速度会更快。文件管理器文件管理器选项包括上传、删除、重命名、复制、编辑文本、创建新文件夹和创建新文件的功能。安全启用文件管理器功能时应该小心,因为您基本上允许用户在服务器上创建和修改文件。分配登录名是个好主意,否则您应该确保没有不受欢迎的客人可以访问。文件管理器选项在config.php中,您会发现以下选项,默认情况下全部禁用。'allow_upload'=>false,'allow_delete'=>false,'allow_rename'=>false,'allow_new_folder'=>false,'allow_new_file'=>false,'allow_duplicate'=>false,'allow_text_edit'=>false,复制上传器选项此外,您会在config.php中找到以下选项,专门用于上传器。'upload_allowed_file_types'=>'',//comma-separatedlistofalloweduploadfiletypes/empty=allowany/'jpeg,jpg,image/*''upload_max_filesize'=>0,//[bytes]/0=unlimited(butlimitedbyserverPHPupload_max_filesize)'upload_note'=>'',//includeasmalltextnoteatbottomofuploader/'Maxfilesize%upload_max_filesize%''upload_exists'=>'increment',//'increment'/'overwrite'/'fail'自定义包括如果您希望包含自定义元标记、html、css或Javascript,文件应用程序将从您的_files存储路径中查找要包含的以下文件:include/head.htmlcss/custom.cssinclude/footer.htmljs/custom.js复制头.htmlinclude/head.html复制用于添加计数器、统计信息(如GoogleAnalytics)和进入文档标签的元<head>标签。自定义.csscss/custom.css复制使用CSS变量自定义CSS样式阅读更多页脚.htmlinclude/footer.html复制</body>就在结束标签的上方。用于触发自定义javascript。自定义.jsjs/custom.js复制加载自定义javascript文件。高级Javascript配置尽管主文件配置部分包含最有用的选项,但也有一些高级Javascript选项可供希望调整界面的人使用。这些选项与主配置分开的原因:避免使用大多数用户不需要的高级选项使主配置混乱。仅限Javascript选项的高级嵌套配置逻辑。许多Javascript选项都是函数,需要直接从Javascript中声明。使用说明首先,_files/js/custom.js在您的storage_path._files/js/custom.js复制打开文件并包含您的自定义选项。在下面的示例中,我们将弹出图像分配给图像click,zoom而不是导航到上一个/下一个。_files/js/custom.js_c.config={popup:{click:'zoom',//prev_next,next,zoom}}复制以下是具有默认值的所有当前选项的列表:_c.config={//customcontextmenu(dropdown)optionscontextmenu:{rotate:{text:'rotate',icon:'rotate_right',condition:(item)=>item.browser_image,//href:(item)=>{},action:(item)=>_h.popup(null,null,null,item.url_path)}}//download_diroptionsdownload_dir:{javascript:true,//UsetheJavascriptdownloadsAPItodownloadzipfilescurrent_dir_only:true//Onlyassigndownloaddirbuttontocurrentdirectory},//favicon//Addyourownencodedinlinefaviconorfalsetodisable/SVGhttps://yoksel.github.io/url-encoder/favicon:"<linkrel=\"icon\"href=\"data:image/svg+xml,%3Csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'%3E%3Cpathfill='%2337474F'd='M20,18H4V8H20M20,6H12L10,4H4C2.89,42,4.892,6V18A2,200,04,20H20A2,200,022,18V8C22,6.8921.1,620,6Z'/%3E%3C/svg%3E\"type=\"image/svg+xml\"/>",//history_scroll/attemptstorestorescrollpositiononbrowserhistorynavigationhistory_scroll:true,//customlanguageoptionslang:{//assignlanguagemenuintopbar/true=all/false=nomenu(default)menu:['pt','en','zh'],//Portuguese,English,Chinese//overrideorcreatenewlanguageslangs:{fr:{logout:'déconnexion'},no:{date:'dato',flag:'no'}}},//load_svg_max_filesize100kb/becausecomplexSVGvectorfileswillslowdownrenderinginbrowserload_svg_max_filesize:100000,//panoramaoptionspanorama:{//functiontodetectpanoramaequirectangularsourcefileis_pano:(item)=>{vard=item.dimensions;//>=2048px&&ratio2:1with1%pixelmarginreturnd[0]>=2048&&Math.abs(d[0]/d[1]-2)<0.01;}},//popupoptionspopup:{captionEl:true,//showpopupcaptioncaption_hide:true,//Auto-hidepopupcaptiononmouseinactivitycaption_style:'block',//captionstyle:block,box,subtitles,gradient,topbar,nonecaption_align:'center-left',//captionalign:left,center-left,center,rightclick:'prev_next',//popupclick:prev_next,next,zoomzoomEl:false,//showzoombuttonplayEl:false,//showslideshowplaybuttontransition:'glide',//slideshowtransition:none,slide,glide,fade,zoom,pop,elasticplay_transition:null,//assigntransitionforslideshow(sameasabove).InheritsmaintransitionbydefaultbgOpacity:.95,//backgroundopacityplay_interval:5000,//slideshowplayintervalloop:false,//loopslideshowtransitions:{//customtransitionsObjectmytransition:function(dir){return{translateX:[10*dir,0],opacity:[.1,1],duration:1000,easing:'easeOutQuart'}}}},//custompage<title>function/belowisdefaulttitle:(path,name,error,count)=>{return(name||'/')+(error?'':'['+count+']');},//uppyuploaderinterfaceoptionsuppy:{note:'Uploadimagesonly,maximum%upload_max_filesize%',locale:''//https://github.com/transloadit/uppy/tree/main/packages/%40uppy/locales/srcDropTarget:false,Webcam:false,//https://uppy.io/docs/webcam/ImageEditor:{//https://uppy.io/docs/image-editor/quality:0.8,cropperOptions:{},actions:{}}},}复制语默认情况下,界面语言将根据检测到的浏览器语言自动加载。工作正在进行中翻译工作正在进行中。随着我们添加新功能,一些文本仍为英文。来自url如果需要,访问者可以通过将参数附加到浏览器中的url来覆盖语言选项。指定特定语言如果访问者希望覆盖指定的语言,只需?lang={code}在浏览器中附加即可。https://demo.files.gallery/?lang=fr复制重置语言如果访问者想要重置任何以前分配的语言,只需?lang=reset在浏览器中附加即可。https://demo.files.gallery/?lang=reset复制启用语言菜单lang_menu可以通过附加来启用语言菜单(配置选项)lang_menu=1。https://demo.files.gallery/?lang_menu=1复制看演示语言配置选项中可用的语言配置选项config.php。lang_default如果浏览器语言不受支持或被lang_auto禁用,则默认界面语言。'lang_default'=>'en'复制lang_auto根据检测到的浏览器语言自动分配界面语言。'lang_auto'=>true复制添加新的自定义语言如果您要使用的语言不存在或者您只是想添加自己的语言,您可以添加语言文件_files/lang/{code}.json。如果您希望语言根据浏览器语言自动加载,则需要按照语言代码约定命名[参见ref]。如果您希望您的新语言作为默认语言,请更改选项'lang_default'=>'{code}',并设置'lang_auto'=>false是否不希望从浏览器自动分配语言。添加翻译时使用以下默认语言模板:{"blocks":"","columns":"","copylink":"","copytext":"","date":"","delete":"","directoryisempty":"","download":"","duplicate":"","error":"","fail":"","files":"","filter":"","folders":"","googlemaps":"","grid":"","imagelist":"","images":"","kind":"","language":"","layout":"","list":"","loading":"","login":"","logout":"","matchesfoundfor":"","name":"","newfile":"","newfolder":"","openinnewtab":"","rename":"","rows":"","save":"","showinfo":"","size":"","sort":"","space":"","uniform":"","upload":"","zoom":""}复制语言javascript配置您还可以从javascriptconfig扩展语言并分配语言选项。_c.config={//customlanguageoptionslang:{//assignlanguagemenuitemsintopbar/true=all/false=nomenu(default)menu:['pt','en','zh'],//Portuguese,English,Chinese//overrideorcreatenewlanguageslangs:{fr:{logout:'déconnexion'},no:{date:'dato',flag:'no'}}},}复制提交语言修改随时提交新语言或对现有翻译的改进。我们将在官方版本中包含改进。故障排除如果遇到问题,您要做的第一件事是检查“文件”应用程序的内置诊断程序。此操作将专门检查文件应用程序对某些功能所需的服务器/PHP功能。?check=1通过附加到您的文件应用程序url在浏览器中访问您的诊断。https://yourwebsite.com/?check=1复制见演示:demo.files.gallery/?check=1支持如需支持,请在forum.files.gallery中发布问题更新更新文件应用程序更新文件应用程序就像安装.只需下载最新的文件应用程序index.php并替换您现有的文件应用程序index.php。您的配置设置将保留在_files/config/config.php.索引.php如果您出于某种原因index.php直接进行了编辑,则这些更改将丢失。在文件应用程序如果您在configcheck_updates中启用了该选项,当有可用更新时,您将直接在Files应用程序中收到通知。此外,您可以直接从界面选择“更新”、“下载”或“阅读更多”。默认情况下禁用此选项,因为您可能不希望此选项公开可用。
前言因为昨天的workers.devDNS污染事件,CFworkers默认域名后缀workers.dev被全线DNS污染,所以CFworkers默认域名已经越来越不稳定了,我们可以使用自己的自定义域名来解决。准备材料1.一个域名2.一个CloudFlare账号教程1.托管域名就是把自己的域名转移到CloudFlare,托管于CloudFlare,这个很简单,不会的可以自己百度,如果没有域名,也可以参考教程Freenom申请免费域名_一曲横笛的博客-CSDN博客申请一个自己的免费域名2.新增DNS解析在自己得域名新增一个DNS解析,名称自定义,IPv4随便填,最重要的是打开小黄云(CDN)3.创建Workers步骤和原来的步骤一样,教程:利用CF搭建Github下载代理_一曲横笛的博客-CSDN博客4.关联域名进入你的域名,不是你的首页!进入Workers,添加路由路由填写上一步的子域名+/*,比如我刚刚DNS解析的域名是gh.xxxxx.cf,那在路由一栏则填写gh.xxxxx.cf/*,服务选择需要自定义域名访问的Worker,就是你刚刚第三步创建的,注意需要先创建Worker再来关联,表示通过这个自定义域名来访问Worker服务:完成后就可以通过自定义的域名访问Worker服务了。总结总结一下,两个关键点:域名必须托管于CloudFlareWorker创建后需添加路由关联
这里我给大家推荐一些好用的国内外免费短信接码平台:https://www.free-sms-receive.com/https://www.tesms.net/https://smscodeonline.com/https://sms24.me/https://receive-sms.cchttps://bestsms.xyz/https://getfreesmsnumber.comhttp://7sim.nethttps://receive-sms-free.cc/http://sms.sellaite.comhttps://ch.freephonenum.comhttps://smsreceivefree.comhttps://www.receive-sms-online.infohttps://receiveasms.comhttps://sms-online.co/receive-free-smshttps://receive-sms.comhttp://receivefreesms.com/https://www.receivesmsonline.net/https://www.freeonlinephone.org/https://us-phone-number.comhttps://temporary-phone-number.comhttps://www.receivesms.org/https://pingme.tel/receive-sms-online-cn/http://receivefreesms.net/http://receivesmsonline.in/https://sms-receive.net/https://www.receivesms.net/https://www.supercloudsms.com/https://www.mianfeisms.xyz/https://www.tsttk.com/phone/chinahttps://www.materialtools.com/注:排名不分先后,有些可能用不了需要自行测试,仅供参考禁止违法!
这篇文章我们就来教大家去如何申请并搭建Xray进行科学上网准备材料一枚邮箱账号信用卡或借记卡flycli工具部署步骤打开Fly.io官网,注册账号,记得一定要使用本地网络注册!!!在这里会提示需要你的信用卡信息,我这里就用填写我在Bankoff申请的虚拟卡如无意外的话,当出现这个页面的时候,就已经注册成功了检查邮箱内的激活链接,激活账号使用以下命令安装Flyctl工具Windows:iwrhttps://fly.io/install.ps1-useb|iex(请使用PowerShell或Windows终端的管理员模式安装)MacOS/Linux:curl-Lhttps://fly.io/install.sh|sh下载KOXray项目文件,并解压修改Dockerfile内第3-5行修改自定义设置,说明如下:AUUID:用来部署节点的UUID,如有需要可在uuidgenerator生成CADDYIndexPage:伪装站首页文件ParameterSSENCYPT:ShadowSocks加密协议右键当前目录,点击“从终端中打开”输入flyctlauthlogin,在CLI页面登陆自己的Fly.io账号输入flyctllaunch,然后按照下图设置修改CLI生成的fly.toml文件,将internal_port=8080改为internal_port=80回到命令行,输入flyctldeploy进行推送至Fly.ioCLI推送成功之后,在Fly.io的控制面板会提示刚刚部署的应用在这里你可以看到应用信息,复制Hostname备用客户端配置如下(以vmess为例,其他协议可看KOXray项目说明)
在这个脚本出现之前就已经有很多类似的脚本了,而调用API的原因为了模拟有开发者在使用订阅免得微软不自动续费当然,到今日微软的自动续费机制依然是个迷,所以我分享这个脚本的主要是因为我透过此脚本续费成功了。效果演示Telegram频道:https://t.me/+mSLMW23v16AxNTA9从3月1日开始执行到现在续费原理引用自https://ednovas.gitbook.io/e5使用E5开发者账号注册应用,并通过注册的应用调用MicrosoftGraphAPI(调用MicrosoftGraphAPI是判定开发活动的一种)来伪装开发者活动(简单来说就是假装你是开发者,然后调用API进行E5续订)更多详细的原理可自行使用搜索引擎搜索“E5调用API原理“准备材料一个Cloudflare账号一个E5账号注意,下面演示的全部密钥和ID都是临时的,在此文章发表前已全部失效。创建CloudflareWorkers随便填一个名字即可然后按继续使用Free计划即可成功后,你应能看见以下画面创建一个服务点击创建服务并输入一个名字,没有限制选择HTTP处理程序然后点击创建服务关闭Routing前往触发器,并选择禁用路由,然后选择取消部署创建微软应用程序在应用注册页面中,点击新注册名称值名称APICallCloudflare受支持的帐户类型仅此组织目录(仅<组织名称>-单一租户)中的帐户重定向URI(可选)Web,http://localhost:42791/填写后,按注册创建密钥前往证书和密码页面,点击`新客户端密码截止期限最大值为两年,如需要更长时间请自行透过搜索引擎查看如何调整为永久名称值说明Workers截止期限24个月你应该能看到值和机密ID,请保存值名称值值S_N8Q~K6gj3hWVx36G.JuCE0f8boxoXUH7Gf-cSe添加权限前往API权限,根据下图中的API添加权限权限名称URLDirectory.Read.Allhttps://graph.microsoft.com/Directory.Read.AllDirectory.ReadWrite.Allhttps://graph.microsoft.com/Directory.ReadWrite.AllFiles.Read.Allhttps://graph.microsoft.com/Files.Read.AllFiles.ReadWrite.Allhttps://graph.microsoft.com/Files.ReadWrite.AllMail.Readhttps://graph.microsoft.com/Mail.ReadMail.ReadWritehttps://graph.microsoft.com/Mail.ReadWriteMailboxSettings.Readhttps://graph.microsoft.com/MailboxSettings.ReadMailboxSettings.ReadWritehttps://graph.microsoft.com/MailboxSettings.ReadWriteoffline_accesshttps://graph.microsoft.com/offline_accessSites.Read.Allhttps://graph.microsoft.com/Sites.Read.AllSites.ReadWrite.Allhttps://graph.microsoft.com/Sites.ReadWrite.AllUser.Readhttps://graph.microsoft.com/User.ReadUser.ReadWrite.Allhttps://graph.microsoft.com/User.ReadWrite.All添加后,按一下代表<组织名称>授予管理员同意获取refresh_token前往概述,把应用程序(客户端)ID保存下来名称值应用程序(客户端)ID2d4599ba-57e1-44a3-9fcb-aa4e0d2e7755请把{{client_id}}替换成应用程序(客户端)ID并在浏览器打开以下页面:如果出现错误请再三检查URL是否输入正确,是否已经进行url-encodedhttps://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id={{client_id}}&response_type=code&redirect_uri=http://localhost:42791&scope=https://graph.microsoft.com/offline_access点击接受然后你会得到以下网址:http://localhost:42791/?code=0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAA&session_state=52fd633e-7b30-4209-bb16-5d2873621057##KeyValuecode0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAAsession_state52fd633e-7b30-4209-bb16-5d2873621057如果得到错误回应请参考微软的错误响应在Postman中前往Variables然后填入要求的内容,记得按Save保存如果没有Postman账号可以注册一个,很简单接着,前往Step2并按一下Send成功后,回应200OK并返回JSON内容KeyValuetoken_typeBearerscopeprofileopenidemailhttps://graph.microsoft.com/User.Readexpires_in3599access_tokeneyJ...refresh_token0.AX...弃access_token而取refresh_token者也。添加账号回到Cloudflare,前往Workers->KV并创建命名空间建议格式为MS_<你的组织名称>以方便管理添加完成后,点击查看添加以下变量密钥值config_id<应用程序(客户端)ID(client_id)值>config_key<机密ID中的值>refresh_token<refresh_token的值>绑定KV命名空间完成后,前往Workers->概述->你的Workers->设置并点击添加绑定完成后点击保存添加脚本回到资源,点击快速编辑并粘贴以下内容代码可修改的部分:值说明botToken电报的机器人回报,如果不需要可以设置为空""chatId电报的频道/个人对话IDNAMESPACESCloudflare的命名空间,就是刚才设置的那个保存后返回上一页设置定时到触发器,选择添加Cron触发器按照以下图片设置即可如一切正常,机器人应该会每15分钟发送一次信息,见效果演示参考资料GitHub:InspAlgo/clockworkMicrosoft标识平台和OAuth2.0授权代码流
今天介绍的这一家是来自法国的个人IDC站长,最高能开到6C16G的VPS.比Hax、Woiden还大方,而且还没广告。估计发了这篇文章站长要连夜润去新加坡了。2021-5-15更新:我已经通过博客的邀请链接邀请到15人获取免费的IPv4,然后我在Discord询问部署进展时候,站长居然直接找了个理由ban我。这特么是不是人了还!建议理性加他们的DiscordServer2021-5-14更新:发了这篇文章之后,貌似配额满了开不了了。耐心等站长官方处理。已经有人在他们的DiscordServer反馈了准备材料一枚邮箱步骤方法打开官网,点击右上角的“Register”输入个人信息、邮箱、设置密码,点击“Register”新建一个项目点击“Order”按钮选择操作系统,位置(目前只有法国)、配置,然后输入主机名和密码等待1-3分钟,然后就可以看到VPS主机的连接信息了
在之前我们介绍过Workers反代,但是由于近期某国zf的大刀之下,workers的域名已经被污染了。在自定义域名方案之下、我们来和大家一起在CloudFlarePages利用其的Functions部署反代准备材料Github/GitLab账号CloudFlare账号部署步骤打开Github/GitLab,新建一个私有仓库点击creatinganewfile按钮文件名设置为_worker.js,然后复制以下代码,将hax.co.id改成你想要反代的网站exportdefault{asyncfetch(request,env){leturl=newURL(request.url);if(url.pathname.startsWith('/')){url.hostname='hax.co.id'letnew_request=newRequest(url,request);returnfetch(new_request);}returnenv.ASSETS.fetch(request);},};转到CloudFlare的Pages页面,按照下图操作登录并授权自己的GitHub/GitLab账号,选择刚刚创建的私库输入项目名称,其他不动,点击“Saveanddeploy”部署完成检查效果,本教程反代的是hax,所以说显示的页面就是hax的转自:小御坂的破站