再多站点、网站开放注册投稿的时候,并且没有限制投稿者上传文件,那将是很危险的事情,所以,限制上传类型是必须的!今天逍遥乐就带大家,如何从WordPress默认允许上传的文件类型中,禁止上传某些特定类型的文件,如WordPress默认允许上传 .exe 后缀名的可运行文件,那么我们怎么禁止用户在WordPress后台发表文章时上传 .exe 后缀名的文件呢?这就是本文要解答的问题。

首先,我们要知道WordPress支持上传哪些类型的文件,我们可以在当前主题的functions.php中插入以下php代码,然后打开博客首页,查看网页源代码,即可看到一个完整的支持列表(看完后,记得删除):

print_r(wp_get_mime_types());

下面是以上代码输出的结果,这里供大家参考,也免了大家去写代码看结果。下面是WordPress默认允许上传的文件类型列表:

// []中括号中的名称代表文件名后缀名/扩展名

// => 后面的名称代表的是后缀名所在应的文件MIME信息

Array

(

[jpg|jpeg|jpe] => image/jpeg

[gif] => image/gif

[png] => image/png

[bmp] => image/bmp

[tif|tiff] => image/tiff

[ico] => image/x-icon

[asf|asx|wax|wmv|wmx] => video/asf

[avi] => video/avi

[divx] => video/divx

[flv] => video/x-flv

[mov|qt] => video/quicktime

[mpeg|mpg|mpe] => video/mpeg

[mp4|m4v] => video/mp4

[ogv] => video/ogg

[mkv] => video/x-matroska

[txt|asc|c|cc|h] => text/plain

[csv] => text/csv

[tsv] => text/tab-separated-values

[ics] => text/calendar

[rtx] => text/richtext

[css] => text/css

[htm|html] => text/html

[mp3|m4a|m4b] => audio/mpeg

[ra|ram] => audio/x-realaudio

[wav] => audio/wav

[ogg|oga] => audio/ogg

[mid|midi] => audio/midi

[wma] => audio/wma

[mka] => audio/x-matroska

[rtf] => application/rtf

[js] => application/javascript

[pdf] => application/pdf

[swf] => application/x-shockwave-flash

[class] => application/java

[tar] => application/x-tar

[zip] => application/zip

[gz|gzip] => application/x-gzip

[rar] => application/rar

[7z] => application/x-7z-compressed

[exe] => application/x-msdownload

[doc] => application/msword

[pot|pps|ppt] => application/vnd.ms-powerpoint

[wri] => application/vnd.ms-write

[xla|xls|xlt|xlw] => application/vnd.ms-excel

[mdb] => application/vnd.ms-access

[mpp] => application/vnd.ms-project

[docx] => application/vnd.openxmlformats-officedocument.wordprocessingml.document

[docm] => application/vnd.ms-word.document.macroEnabled.12

[dotx] => application/vnd.openxmlformats-officedocument.wordprocessingml.template

[dotm] => application/vnd.ms-word.template.macroEnabled.12

[xlsx] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

[xlsm] => application/vnd.ms-excel.sheet.macroEnabled.12

[xlsb] => application/vnd.ms-excel.sheet.binary.macroEnabled.12

[xltx] => application/vnd.openxmlformats-officedocument.spreadsheetml.template

[xltm] => application/vnd.ms-excel.template.macroEnabled.12

[xlam] => application/vnd.ms-excel.addin.macroEnabled.12

[pptx] => application/vnd.openxmlformats-officedocument.presentationml.presentation

[pptm] => application/vnd.ms-powerpoint.presentation.macroEnabled.12

[ppsx] => application/vnd.openxmlformats-officedocument.presentationml.slideshow

[ppsm] => application/vnd.ms-powerpoint.slideshow.macroEnabled.12

[potx] => application/vnd.openxmlformats-officedocument.presentationml.template

[potm] => application/vnd.ms-powerpoint.template.macroEnabled.12

[ppam] => application/vnd.ms-powerpoint.addin.macroEnabled.12

[sldx] => application/vnd.openxmlformats-officedocument.presentationml.slide

[sldm] => application/vnd.ms-powerpoint.slide.macroEnabled.12

[onetoc|onetoc2|onetmp|onepkg] => application/onenote

[odt] => application/vnd.oasis.opendocument.text

[odp] => application/vnd.oasis.opendocument.presentation

[ods] => application/vnd.oasis.opendocument.spreadsheet

[odg] => application/vnd.oasis.opendocument.graphics

[odc] => application/vnd.oasis.opendocument.chart

[odb] => application/vnd.oasis.opendocument.database

[odf] => application/vnd.oasis.opendocument.formula

[wp|wpd] => application/wordperfect

)

上面的内容,大家看了可能眼花缭乱,其实只要记住,在每一行中,左边中括号中的名称是文件的后缀名(或者叫扩展名),右边 => 后面的名称代表的是后缀名所在应的文件MIME信息,这个我们不用管。

现在言归正传,如果想禁止用户在WordPress后台发表文章时上传特定后缀名的文件,我们可以在当前主题的functions.php中添加以下php代码:

add_filter('upload_mimes', 'custom_upload_mimes');

function custom_upload_mimes( $existing_mimes=array() ) {

// 注意中括号中的名称,必须取自上面支持列表中中括号内的名称

unset( $existing_mimes['exe'] ); //此处禁止了上传exe后缀名的文件

return $existing_mimes;

}

如果想禁止上传更多后缀名的文件,可以复制第5行的代码,粘贴到第5行代码以后,第7行代码之前,把其中的exe,改成要禁止上传的后缀名即可,如:

add_filter('upload_mimes', 'custom_upload_mimes');

function custom_upload_mimes( $existing_mimes=array() ) {

// 注意中括号中的名称,必须取自上面支持列表中中括号的名称

unset( $existing_mimes['exe'] ); //此处禁止了上传exe后缀名的可运行文件

unset( $existing_mimes['jpg|jpeg|jpe'] ); //此处禁止了上传jpg、jpeg和jpe后缀名的压缩文件

unset( $existing_mimes['gif'] ); //此处禁止了上传gif后缀名的图片文件

unset( $existing_mimes['png'] ); //此处禁止了上传png后缀名的图片文件

return $existing_mimes;

}

经过此项设置,用户如果在后台上传禁止的文件类型,那么会得到这样的提示:

php 禁止修改文件名,WordPress教程:简单修改代码禁止用户上传特定类型的文件!...相关推荐

  1. java修改文件名_Java实现简单修改文件名的方法分析

    本文实例讲述了Java实现简单修改文件名的方法.分享给大家供大家参考,具体如下: 今天帮朋些个网站,做到商品上传的时候需要给文件重新设置名称,以前也做过类的功能,只是没有保存忘了,为了避免以后再重新找 ...

  2. CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除

    CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...

  3. file-uploader-cli 关于上传至京东云中文件夹问题的源码修改

    file-uploader-cli源码修改 注:可以直接跳到最下面看需要修改的部分 最近由于Gitee的开源审查,导致其无法再作为图床使用.在对比了多家OSS服务后,决定使用京东云作为新图床,并使用f ...

  4. 用户上传头像以及BUG修改

    持久层 1.sql语句的规划 上传文件的操作其实是:先将用户上传的文件保存到服务器端的某个位置,然后将保存文件的路径记录在数据库中.当后续需要使用该文件时,从数据库中读出文件的路径,即可实现在线访问该 ...

  5. 史上最简单的openshift免费空间上传代码教程!没有之一!

    史上最简单的openshift免费空间上传代码教程!没有之一! 最近因为想弄一个免费的空间,而且最好是java的空间,找了一大片,jsp的空间少不说,免费的更是寥寥无几.  找了一大推垃圾空间,终于让 ...

  6. 论坛php 图片上传,Discuz! X3 论坛文件图片上传尺寸:小于2M的修改方法

    相信很多人都在使用Discuz! X3 论坛程序,笔者最近也用Discuz! X3.2 开办了一个论坛,但是当用户上传文件时,总是提示:文件尺寸 小于2M,于是就去后台修改相应的设置,但是改来改去,一 ...

  7. 最简单的openshift免费空间上传代码教程!和FTP一样简单!

    史上最简单的openshift免费空间上传代码教程!没有之一! 最近因为想弄一个免费的空间,而且最好是java的空间,找了一大片,jsp的空间少不说,免费的更是寥寥无几. 找了一大推垃圾空间,终于让我 ...

  8. Struts2教程7:上传任意多个文件

    2019独角兽企业重金招聘Python工程师标准>>> 一.上传单个文件 上传文件是很多Web程序都具有的功能.在Struts1.x中已经提供了用于上传文件的组件.而在Struts2 ...

  9. Android简单实现将手机图片上传到服务器中

    在本例中,将会简单的实现安卓手机将图片上传到服务器中,本例使用到了 服务器端:PHP+APACHE 客户端:JAVA 先简单实现一下服务器端的上传并测试上传效果,看实例 <?php if(emp ...

最新文章

  1. Lync Server 2013 实战系列之六:标准版-安装和更新LyncServer 系统
  2. 超级组合:用户中心+云平台
  3. 分布式与人工智能课程(part14)--深度学习
  4. python面向对象编程思想书籍_Python的面向对象编程思想
  5. 深入研究socket编程(3)——使用select函数编写客户端和服务器
  6. 数据不平衡处理_如何处理多类不平衡数据说不可以
  7. win10下TensorFlow-GPU安装(GTX1660+CUDA10+CUDNN7.4)
  8. 爬虫文档学习 xpath bs4 selenium scrapy...
  9. 互联网基础知识------OSI七层网络模型梗概
  10. IPv6下网络编程实例
  11. 在家办公怎么弄?华为云DevCloud宝典一看就懂——迭代开发篇
  12. 二手机Q1行情报告:iPhone 11、华为Mate、P40(5G)等小幅涨价
  13. 谷歌邮箱服务器该怎么填,谷歌游戏怎么写 谷歌邮箱格式_游侠手游
  14. idea中GIT版本回退、
  15. 2021 第十二届 蓝桥杯 国赛决赛 Java B组 真题 详细解析
  16. Android 仿微信短视频录制
  17. 安装php扩展fileinfo
  18. CAN总线协议:标准CAN和扩展CAN
  19. numpy入门详细代码
  20. Java重载,顺序不同也算重载

热门文章

  1. 家族企业的优势、劣势分析
  2. LIS3DH的初步探索
  3. 基于python的网络爬虫系统论文_python网络爬虫毕业论文
  4. 学校运动会主题的微信公众号图文排版有哪些技巧?
  5. keyshot导入失败错误代码7_keyshot7的一些问题
  6. 不小心误删了word、ppt软件怎么办
  7. ASCII码表 ASCII码转换函数
  8. Kafka+Spark Streaming如何保证exactly once语义
  9. x1c 2018 体验
  10. 一个比较齐全的汉字字库对应拼音 操作实现