PHP chmod 和 file_get_content 权限问题

发布于 2024-12-06 21:04:29 字数 512 浏览 1 评论 0原文

在 PHP 中,我正在抓取远程图像:

$img = file_get_contents("http://example.com/image.jpg");
file_put_contents("../testdir/photo.jpg",$img);

除非 testdir 设置为 chmod 0777,否则我会收到 Permission Denied 错误。我尝试使用 PHP 执行此操作,然后将其设置回 0755:

chmod("../testdir/", 0777);
$img = file_get_contents("http://example.com/image.jpg");
file_put_contents("../testdir/photo.jpg",$img);
chmod("../testdir/", 0755);

但我不允许操作 有安全有效的替代方案吗?

谢谢!

In PHP, I'm grabbing remote images with:

$img = file_get_contents("http://example.com/image.jpg");
file_put_contents("../testdir/photo.jpg",$img);

I get a Permission Denied error unless testdir is set to chmod 0777. Which, I tried to do with PHP and then set it back to 0755:

chmod("../testdir/", 0777);
$img = file_get_contents("http://example.com/image.jpg");
file_put_contents("../testdir/photo.jpg",$img);
chmod("../testdir/", 0755);

but I got Operation Not Permitted Is there a safe, working alternative?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

や莫失莫忘 2024-12-13 21:04:29

将目录的所有者更改为 PHP 将运行的用户(通常与 Web 服务器进程 - Apache、lighttpd、nginx 等 - 运行的用户相同)。那么你就不会收到权限错误。

Change the owner of the directory to be the user which PHP will be running as (typically the same user the web server process - Apache, lighttpd, nginx, whatever - is running as). Then you won't get permission errors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文