废话不多说,pbootcms碰到需要修改文件上传格式的时候,首先去/config/config.php里修改upload配置信息,一般情况下,这里修改后就ok了。
这边以一个图片格式为例来介绍,本文栗子上场→webp格式图片。
什么是WebP格式的图片?
WebP是Google在2010年发布的一种新型图片格式,支持无损和有损压缩。在无损压缩方面,同质量的WebP图片比PNG的体积小26%,而在有损压缩方面,同质量的WebP图片比JPEG小25-34%。WebP在不降低图片质量的同时,减少了约三分之一的体积。详细可参考谷歌官方。
修改步骤
1、打开/config/config.php修改upload配置信息,增加webp格式
//上传配置'upload'=>array('format'=>'jpg,jpeg,png,gif,xls,xlsx,doc,docx,ppt,pptx,rar,zip,pdf,txt,mp4,avi,flv,rmvb,mp3,otf,ttf,webp','max_width'=>'1920','max_height'=>''),
一般到此就结束的,然而测试发现提示:“选择的图片种包含不支持的格式”,这里是因为layui本身也有图片格式限制导致。
2、打开ppsdminiewdefaultlayuilayui.all.js,搜索jpg|png|gif|bmp|jpeg,在尾巴增加webp,保存。
原来
jpg|png|gif|bmp|jpeg
修改成
jpg|png|gif|bmp|jpeg|webp
3、操作完前面后台强制刷新后,上传就正常了,然后发现编辑里还不行,那是因为ueditor也有限制,接着操作。
打开coreextendueditorphpconfig.json,在图片相关的配置代码后面都增加webp,下面是修改后的全部代码,替换或者对照修改后保存,强制刷新后台页面。
为避免以下代码某些字符被处理,提供个config.json文件,点击下载
/*前后端通信相关的配置,注释只允许使用多行方式*/{/*上传图片配置项*/"imageActionName":"uploadimage",/*执行上传图片的action名称*/"imageFieldName":"upfile",/*提交的图片表单名称*/"imageMaxSize":20480000,/*上传大小限制,单位B*/"imageAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".webp"],/*上传图片格式显示*/"imageCompressEnable":false,/*是否压缩图片,默认是true*/"imageCompressBorder":1600,/*图片压缩最长边限制*/"imageInsertAlign":"none",/*插入的图片浮动方式*/"imageUrlPrefix":"",/*图片访问路径前缀*/"imagePathFormat":"/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*//*{filename}会替换成原文件名,配置这项需要注意中文乱码问题*//*{rand:6}会替换成随机数,后面的数字是随机数的位数*//*{time}会替换成时间戳*//*{yyyy}会替换成四位年份*//*{yy}会替换成两位年份*//*{mm}会替换成两位月份*//*{dd}会替换成两位日期*//*{hh}会替换成两位小时*//*{ii}会替换成两位分钟*//*{ss}会替换成两位秒*//*非法字符:*?"<>|*//*具请体看线上文档:fex.baidu.com/ueditor/#use-format_upload_filename*//*涂鸦图片上传配置项*/"scrawlActionName":"uploadscrawl",/*执行上传涂鸦的action名称*/"scrawlFieldName":"upfile",/*提交的图片表单名称*/"scrawlPathFormat":"/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*/"scrawlMaxSize":20480000,/*上传大小限制,单位B*/"scrawlUrlPrefix":"",/*图片访问路径前缀*/"scrawlInsertAlign":"none",/*截图工具上传*/"snapscreenActionName":"uploadimage",/*执行上传截图的action名称*/"snapscreenPathFormat":"/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*/"snapscreenUrlPrefix":"",/*图片访问路径前缀*/"snapscreenInsertAlign":"none",/*插入的图片浮动方式*//*抓取远程图片配置*/"catcherLocalDomain":["127.0.0.1","localhost","img.baidu.com"],"catcherActionName":"catchimage",/*执行抓取远程图片的action名称*/"catcherFieldName":"source",/*提交的图片列表表单名称*/"catcherPathFormat":"/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*/"catcherUrlPrefix":"",/*图片访问路径前缀*/"catcherMaxSize":20480000,/*上传大小限制,单位B*/"catcherAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".webp"],/*抓取图片格式显示*//*上传视频配置*/"videoActionName":"uploadvideo",/*执行上传视频的action名称*/"videoFieldName":"upfile",/*提交的视频表单名称*/"videoPathFormat":"/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*/"videoUrlPrefix":"",/*视频访问路径前缀*/"videoMaxSize":204800000,/*上传大小限制,单位B,默认100MB*/"videoAllowFiles":[".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid"],/*上传视频格式显示*//*上传文件配置*/"fileActionName":"uploadfile",/*controller里,执行上传视频的action名称*/"fileFieldName":"upfile",/*提交的文件表单名称*/"filePathFormat":"/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}",/*上传保存路径,可以自定义保存路径和文件名格式*/"fileUrlPrefix":"",/*文件访问路径前缀*/"fileMaxSize":204800000,/*上传大小限制,单位B,默认50MB*/"fileAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".webp",".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid",".rar",".zip",".tar",".gz",".7z",".bz2",".cab",".iso",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".pdf",".txt",".md",".xml"],/*上传文件格式显示*//*列出指定目录下的图片*/"imageManagerActionName":"listimage",/*执行图片管理的action名称*/"imageManagerListPath":"/upload/image/",/*指定要列出图片的目录*/"imageManagerListSize":20,/*每次列出文件数量*/"imageManagerUrlPrefix":"",/*图片访问路径前缀*/"imageManagerInsertAlign":"none",/*插入的图片浮动方式*/"imageManagerAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".webp"],/*列出的文件类型*//*列出指定目录下的文件*/"fileManagerActionName":"listfile",/*执行文件管理的action名称*/"fileManagerListPath":"/upload/file/",/*指定要列出文件的目录*/"fileManagerUrlPrefix":"",/*文件访问路径前缀*/"fileManagerListSize":20,/*每次列出文件数量*/"fileManagerAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".webp",".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid",".rar",".zip",".tar",".gz",".7z",".bz2",".cab",".iso",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".pdf",".txt",".md",".xml"]/*列出的文件类型*/}
修改了类似下方截图的位置,页面中有几处都要修改增加webp。
到此,webp格式可以在后台位置任意上传了。