在最近的一次后台升级 wordpress4.4 中文版之后,点击博客中标题比较长的文章,页面上就爆发了这个错误。这个错误的意思是“文件名称超过了这个平台所允许的最大长度限制”。那就让人有点奇怪了,为什么以前没有出现这个错误呢?

我部署博客用的是 windows server 2008 的平台,PHP+Apache+Mysql,理论上来讲不应该出现这个字符限制的。一开始我怀疑是不是PHP的配置出了问题,因为 file_exists() 函数毕竟是在php的环境下运行,后来也觉得不太对,以前的配置完全可以正常运行,毛线问题没有。难道是 file_exists() 的算法是在 wordpress4.4 的个别PHP文件新增的?

如果是这样的话,php.ini 根本没有类似限制字符长度的配置,有的只是一些模块读写、目录权限及文件大小之类的配置。

后来发现了两篇网友的文章,一个叫 Jeffrey Cameron 的网友问了如下的问题:

Why does the 260 character path length limit exist in Windows?

I have come up against this problem a few times at inopportune moments:

  • trying to work on open source Java projects with deep paths
  • Storing deep Fitnesse wiki trees in source control
  • An error trying to use Bazaar to import my source control tree

Why does this limit exist?
Why hasn’t it been removed yet?
How do you cope with the path limit? … and no, switching to linux or Mac OS X is not a valid answer to this question ;)

意思就是他在编程的时候遇到260个字符长度的限制,是基于 windows 平台的,但是在 Linux 和 MacOS 平台上这个问题是不存在的。所以他在声讨相关的开发人员,为何这个遗留问题仍然没有解决?也就是说在微软的 windows 平台上 file_exists() 的260个字符长度限制在确实存在的。

还有一个叫 Waqleh 的网友直接遇到了这个问题:

How to fix PHP Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (260)?

> PHP Warning: file_exists(): File name is longer than the maximum
> allowed path length on this platform (260):
> C:\Inetpub\vhosts\xxx.com\demos.xxx.com\qa\xxx\assets\js\plugin\tiny_mce\plugins\ibrowser\scripts\phpThumb\cache\5\56\56b\56b7\phpThumb_cache_demos.xxx.com__src56b72e3bbea26ba9aec8b0449cabc81d_par0b9e73569dbbfe81d5e1ff2a11d92887_dat1389704510.jpeg
> in
> C:\Inetpub\vhosts\xxx.com\demos.xxx.com\qa\xxx\assets\js\plugin\tiny_mce\plugins\ibrowser\scripts\phpThumb\phpThumb.php
> on line 588

这个小伙子在部署自己的网站的时候遇到了类似问题,可以发现他的网站目录也是挺长的。file_exists() 在百科解释中是用来检查文件或者目录是否存在,传入的参数是fileName,但我觉得这个参数绝不仅仅是个文件名,而应该是个文件路径 filePath。只有结合目录才能判断文件存在的意义,否则一个单纯的文件名字有多大意义?中国有多少个叫“李飞”的名字的人,有意义吗?但如果说是郑州市东风南路绿地之窗云峰座15楼1503室的李飞,这个人的形象就清晰起来,那就有意义了(贫嘴一下下)。

最佳答案(Best Answer)

下面是一个俄罗斯网友 sємsєм 的回答:

Simply apply the advice of the message. Rearrange your files’ structure.

意思是“仅仅提供一个消息性建议,整理下你的文件目录结构。“。这是有多简洁?Winodws 平台下确实存在这个问题,要么你不用 file_exists() 方法进行php算法判断,要么你换个服务器平台。最简单的就是把项目的文件目录优化了,不要放在多层文件夹下,超过了260个字符的限制。这应该是最简单的处理方案了。

所以……我把项目目录转移到了一个盘的根目录下,项目目录就几层,哪里还会有超限的问题。不过这个缺陷是在 php 中不应该存在的,望php的相关开发人员修正这个平台性问题。同时,wordpress 开发人员发布新版本时,应该提前进行内部测试以发现这种漏洞。

wordpres报错sfile_exists() [function.file-exists]: File name is longer than the maximum allowed相关推荐

  1. Echart报错: Map china not exists. You can download map file on.....的解决办法

    Echart报错: Map china not exists. You can download map file on http://echarts.baidu.com/download-map.h ...

  2. springboot文件上传报错:Required request part ‘file‘ is not present

    文件上传报错:Required request part 'file' is not present 如下使用CommonsMultipartResolver: @Configuration publ ...

  3. colaboratory报错:CUDA status Error: file: ./src/blas_kernels.cu : ()

    一直使用colaboratory进行训练,突然有一天报错: CUDA status Error: file: ./src/blas_[kernels.cu](http://kernels.cu) : ...

  4. ubuntu 找不到mysql.h_ubuntu安装了mysql 但是编译报错 mysql.h: No such file or directory

    在Ubuntu体系中,已经安装了mysql,即应用sudo apt-get install mysql-server mysql-client 但是用C编译mysql数据库时,报错 fatal err ...

  5. scp报错:not a regular file

    2019独角兽企业重金招聘Python工程师标准>>> linux 本地文件上传到服务器 scp /home/XXX/file.1txt  liujia@172.16.252.32: ...

  6. sudo vi ~/etc/profile 报错E212:Can't open file for writing

    linux系统,安装SPARK时, 命令行窗口输入:sudo vi ~/etc/profile 输入: #SPARK_HOME SPARK_HOME=/home/luoji/JAVA/spark-2. ...

  7. 2021-08-10 HDFS Web报错Couldn‘t preview the file.

    在查看文件内容时,在红框位置出现报错"Couldn't preview the file" 解决方法 第一步:修改hdfs-site.xml,添加配置信息 <property ...

  8. MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法

    MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法 参考文章: (1)MySQL5.7报错[ERROR ...

  9. Android Sutiod报错:Dx unsupported class file version 52.0(解决)

    一.Android Stuido报错 其实Dx unsupported class file version 52.0和Conversion to Dalvik format failed with ...

  10. SVN报错:can't open file db/txn-current-lock:permission denied 解决方法

    现象: SVN服务器重启后,重新挂载SVN仓库,可以下载代码,但是上传代码发现报错:can't open file db/txn-current-lock:permission denied 刚开始以 ...

最新文章

  1. 从Oracle到MySQL,余额宝云实践分享
  2. java int转bitmap_Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码...
  3. 6 篇 2019 年最新模型剪枝技术合集
  4. 模电之半导体基础篇3(半导体二极管、二极管应用)
  5. 总结一下最近面试经常被问到的问题
  6. Julia : 中文字符串的取值 UnicodeError 及解决方案
  7. 制作开心网页游戏 HTML+CSS静态网页
  8. Android应用源码英语四级单选助手答题类app源码下载
  9. android qq音乐 本地歌曲,如何将手机qq音乐本地歌曲导入到电脑
  10. 推荐十款很好用的HTML工具编写软件
  11. 第10课:图片管理模块
  12. Hcse 交换知识点-1
  13. KPEG123压电蜂鸣器驱动电路
  14. win10远程桌面连接详细步骤
  15. You are the reason I am
  16. python调用gephi_如何将python代码连接到gephi?
  17. 遥感测绘技术在考古中的应用
  18. 全国哪个城市适合创业
  19. 买服务器做网站 镜像选什么,如何做网站镜像,网站镜像方法
  20. 解决overleaf打不开(reCaptcha失效)问题

热门文章

  1. android ios 对比 组件_Android、iOS历史版本对比
  2. 软件开发过程与项目管理(8.软件项目质量计划)
  3. Centos7配置软RAID+LVM
  4. 115网盘如何打开php文件格式,115网盘真实地址解析工具
  5. 黑马程序员并发编程笔记(一)
  6. vulnhub DriftingBlues: 6
  7. springboot实现条形码_OkapiBarcode生成条形码
  8. 联想启天m430安装黑苹果 10500 big sur 11.6
  9. conime.exe是什么?conime.exe病毒的清除方法
  10. javascript当中iframe的用法