使用WordPress REST API上传部分图片遇403 Forbidden问题求助
通过WordPress REST API上传图片时部分文件返回403错误
我在本地MAMP环境编写了一个简单的PHP脚本,通过WordPress REST API将文件夹中的图片上传至WordPress站点。但不知为何,部分图片返回403错误(Forbidden,服务器拒绝访问该资源),另一部分图片却能正常上传。除了从互联网下载的图片成功率似乎更高外,我找不到能解释这种差异的共性特征。
$servername = "localhost"; $username = "root"; $password = "root"; $dbname = "dbname"; $apiEndpoint = "https://mywebsite.com/?rest_route=/wp/v2/media"; $file = file_get_contents( 'chronometer.png'); // 部分图片可正常使用,部分不行,无论是否在子目录 $url = $apiEndpoint; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, "https://mywebsite.com/?rest_route=/wp/v2/media" ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $file ); curl_setopt( $ch, CURLOPT_HTTPHEADER, [ 'Content-Disposition: form-data; filename="example.png"', "Authorization: Basic MYKEY" ] ); $result = curl_exec( $ch ); curl_close( $ch );
我已经为此耗时数小时仍未解决,目前尝试过的方法包括:
- 检查Apache和PHP配置以确保读写权限正常
- 修改文件扩展名(如.png与.PNG、.jpg与.JPG等互转)
- 创建.htaccess文件覆盖可能存在冲突的httpd配置
- 将项目根目录下所有文件夹、子文件夹及文件设置为所有人可读写(Mac系统)
- 检查PHP配置中的文件上传限制
文件示例:
- 可正常上传:Chronometer
- 无法上传:Scene
内容的提问来源于stack exchange,提问作者Moyk
相关产品推荐
相关产品推荐

