如果我对您的理解正确,您要做的是为最终用户提供一个非常简单的界面,该界面集成到他们的文件系统中。他们将在他们的操作系统上看到一个普通的文件夹,他们将复制和移动文件,重命名它们等等。无论他们在计算机上的任何其他文件夹上做什么。
但是,此文件夹不会是后台的真实文件夹。您希望完全控制对此文件夹的操作。当他们将文件复制到此文件夹中时,您需要一个 PHP 脚本来处理它。当他们在这个特殊文件夹下创建一个新文件夹时,另一个 PHP 脚本会处理它。
正如 salva 所建议的,自己创建文件系统接口确实是一个很好的解决方案;但这不是一件容易的事,也不是一件容易的事。由于您提到 PHP 作为您的后端,我认为您需要更高级别的方法。
您的问题有两个方面需要处理:客户端和服务器。在客户端,您需要一个易于挂载为 posix 系统上的文件夹或 Windows 上的驱动器的文件系统。有很多替代方案,如您所提到的,Samba 和 NFS 是其中的两个。
据我了解,您将在 PHP 中执行服务器端。考虑到这一点,我建议使用 WebDav 而不是 Samba 或 NFS。在服务器端实现起来要容易得多。它几乎适用于所有现代操作系统。甚至还有用于 webdav 访问的浏览器插件,因此您可以非常轻松地为您的客户提供多个界面。
在服务器端,如果您使用 PHP,则有一个名为sabredav的开源 php 库。只需在 Google 上快速搜索一下,我什至找到了一个教程。
在此设置中,您可以按照自己的方式处理文件。这可以是一个单机系统,方法是将 nginx 或 Apache 之类的 Web 服务器嵌入到您的 PHP 端系统中,或者作为在您的服务器上运行的服务提供。
我希望我正确理解了您的问题,这就是您正在寻找的解决方案。
更新:
如果您没有机会像我建议的那样使用不同的解决方案,那么它确实必须是 Samba 和 NFS;这两种协议在 PHP 中实现起来实在是太多了。这将是一个巨大的负担和长期的头痛。
但是,您可以使用普通的 NFS/Samba 服务器并尝试使用您的应用程序在后台监视文件更新。这意味着您想要提供的特殊功能(如文件标记或病毒扫描)将以可能可接受的延迟可用。要实现这一点,您可以检查系统上的所有文件和文件夹并处理修改/新的文件和文件夹。更简单的事情是使用带有日志记录机制的服务器来记录每个操作并跟踪它们的日志。这甚至比直接连接客户端机器更好。如果您正确地构建系统,即使在非常大的系统上,文件修改和处理它们之间的延迟也会非常合理。为此,nas4free可以是一个非常好的解决方案,因为它提供了来自单个系统的许多接口,并且根据其功能页面,它具有 syslog 功能。