问题描述
Web 服务器使用的是 IIS+PHP+WordPress。
从 WordPress 网页上传图片,无法访问原始尺寸。例如 www.xxx.com/wp-content/uploads/1.jpg
无法访问,但是 www.xxx.com/wp-content/uploads/1-100x100.jpg
却可以访问。
查看服务端文件系统,原尺寸图片与裁剪图片处在同一文件夹(uploads)下,但文件夹安全组权限与原尺寸图片的安全组权限不一致,裁剪的图片与文件夹权限一致。
解决方案
修改 PHP 缓存目录(默认 C:\Windows\Temp)的权限,给予 IIS 用户修改权限。
分析
PHP 图片上传过程:先将图片放到缓存目录下,默认情况是 C:\Windows\Temp,然后再转移到 uploads 文件夹里,此时图片的权限会继承 Temp 文件夹的权限。裁剪图片是 WordPress 直接生成到 uploads 文件夹里的,所以权限继承的是 uploads 文件夹。
PHP 的缓存目录路径在 php.ini 配置文件中找。