PHP使用CURL下载图片遇fopen权限拒绝错误求助
解决PHP下载图片到文件夹的权限错误及代码问题
一、先修正代码里的错误
你当前的代码存在路径指向错误:第一个函数里$imageFolder是文件夹路径,但fopen()需要的是具体的文件路径(包含文件名),不是文件夹,这会导致操作异常,同时叠加权限问题。
修正后的Curl代码:
function saveImage(){ // 文件夹路径,注意Windows下用双反斜杠转义或者正斜杠 $imageFolder = "C:\\Users\\kemal\\OneDrive\\Bureaublad\\Parfume"; // 拼接具体的文件名 $imagePath = $imageFolder . "\\goku.png"; $ch = curl_init('https://static.wikia.nocookie.net/dragonball/images/e/e4/Goku_arrives_colored.PNG/revision/latest?cb=20210204093245'); $fp = fopen($imagePath, 'w'); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); // 增加错误排查 if(curl_exec($ch) === false){ echo 'Curl错误:' . curl_error($ch); } curl_close($ch); fclose($fp); }
修正后的file_put_contents代码:
$url = 'https://static.wikia.nocookie.net/dragonball/images/e/e4/Goku_arrives_colored.PNG/revision/latest?cb=20210204093245'; // 正确的文件路径,替换为你的实际路径 $img = "C:\\Users\\kemal\\OneDrive\\Bureaublad\\Parfume\\flower.gif"; // 增加错误捕获 $result = file_put_contents($img, file_get_contents($url)); if($result === false){ echo '文件保存失败'; }
二、解决权限拒绝问题(Windows系统)
按以下步骤给目标文件夹添加写入权限:
- 找到文件夹
C:\Users\kemal\OneDrive\Bureaublad\Parfume,右键点击→选择「属性」 - 切换到「安全」选项卡,点击「编辑」
- 在权限窗口中,找到运行PHP的用户:
- 若用XAMPP/WAMP等本地服务器,通常是
IUSR、Local Service或当前登录用户(如kemal) - 找不到对应用户时,点击「添加」,输入用户名后点击「检查名称」确认,再添加到列表
- 若用XAMPP/WAMP等本地服务器,通常是
- 选中该用户,在「权限」列表中勾选「写入」,点击「应用」→「确定」
错误截图

内容的提问来源于stack exchange,提问作者kemal ozdogan
相关产品推荐
相关产品推荐

