gpt4 book ai didi

PHP file_exists() 未检测到 Dropbox 子文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:09 24 4
gpt4 key购买 nike

我最近将我的 LAMP 升级到 Ubuntu 16.04,Dropbox v43.4.50 同步到这个文件夹/home/arya/Dropbox (NAMA)

我有一个 PHP 脚本需要使用 Dropbox 文件夹中的特定文件。所以,我执行 file_exists('file:///home/arya/Dropbox (NAMA)/CERTIFICATION/PACE/PACE.xls'),但它返回 FALSE。奇怪的是,在我升级之前,file_exists() 为这个文件返回了 TRUE

因此,我测试了 file_exists() 是否通过 file_exists('file:///home/arya/Dropbox (NAMA))' 检测到了 Dropbox 文件夹,是的,它返回 TRUE

然后,我测试了下一个子目录 file_exists('file:///home/arya/Dropbox (NAMA)/CERTIFICATION)' 并返回 FALSE .

所以,我认为也许权限是错误的,但它们是正确的。我是所有文件的所有者,我在我的 Dropbox 文件夹外的其他文件上测试了 file_exists() 并检测到它们。

此外,我确保文件夹/文件的拼写正确(我从 Nautilus 的 URL 栏中复制它以确保准确无误)并且所有文件都可以在我的 PHP 脚本之外访问。

此外,我的 Dropbox 文件夹已完成同步。每隔一段时间,我的一位同事会更新 Dropbox 中的另一个文件,但同步只需要一分钟,而且他们从不编辑我在本文中尝试使用的文件。

因此,我现在认为我计算机上的根 Dropbox 文件夹 (Dropbox (NAMA)) 与同步/正在同步的该文件夹的内容(例如, Dropbox (NAMA)/CERTIFICATIONS).

关于为什么 file_exists 没有检测到 Dropbox 子文件夹的任何想法?

更新:根据评论,我尝试了 /path/to/file 而不是 file:///path/to/file,所以 file_exists('/home/arya/Dropbox (NAMA)/CERTIFICATION/PACE/PACE.xls'),它仍然返回 FALSE

更新:var_dump(exec("ls -al/home/arya",$Output));显示/home/arya/Dropbox (NAMA)中有6个文件,但是 var_dump(exec("ls -al/home/arya/Dropbox (NAMA)",$Output)); 什么也没显示...为什么?

最佳答案

我在终端输入 sudo chmod -R 775 Dropbox\\(NAMA\)/ 并重新运行脚本和 file_exists('file:///home/arya/Dropbox (NAMA)/CERTIFICATION/PACE/PACE.xls') 返回 TRUE

所以,这是一个权限问题。我认为,虽然文件的所有者和 PHP 脚本的用户是相同的 (arya),但拥有文件的组 (arya:arya) 是不同于运行 PHP 脚本的组 (arya:www-data) 并且文件权限设置为不允许文件所有者组之外的任何人访问它。

关于PHP file_exists() 未检测到 Dropbox 子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48889263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com