hkt1998

hkt1998

WordPress无法访问原始图片

2022-06-23

问题阐述

在IIS+PHP+WordPress的Web服务器配置环境下,存在一个图片访问问题。当从WordPress平台上传图片后,用户无法直接访问原始尺寸的图片,例如,尝试访问www.xxx.com/wp-content/uploads/1.jpg会失败。然而,裁剪后的图片如www.xxx.com/wp-content/uploads/1-100x100.jpg则可以顺利访问。

经过对服务端文件系统的深入检查,我们发现原始尺寸的图片与其裁剪版本均存储在同一个“uploads”文件夹内。但值得注意的是,原始图片的安全组权限与其所在文件夹的权限设置并不一致,而裁剪后的图片权限则与文件夹权限保持一致。

解决方案提出

为了解决这个问题,我们建议调整PHP的缓存目录权限。默认情况下,PHP会将上传的图片首先存放在缓存目录中,该目录通常位于C:\\Windows\\Temp。必须确保IIS用户对这个目录拥有修改权限,以便图片能够顺利上传并转移。

问题分析

PHP处理图片上传的流程涉及多个步骤。最初,图片会被临时放置在缓存目录下,该目录在默认情况下是C:\\Windows\\Temp。随后,这些图片会被移动到“uploads”文件夹中。在此过程中,图片会保留它们在缓存目录中原有的权限设置。相比之下,WordPress直接在“uploads”文件夹内生成裁剪后的图片,这些图片自然会继承该文件夹的权限设置。

若需确认或调整PHP的缓存目录路径,建议查阅服务器上的php.ini配置文件。