2010-03-24 119 views
0

我正在尝试编写一个PHP脚本以将文件从本地计算机复制到服务器:将PHP文件复制到另一台服务器;访问其他服务器上的文件系统

$ destination_directory ='I:\ path \ to \ file \'。 $ theme_number;

if(!@ opendir($ desination_directory)){ echo'抱歉,无法找到目的地目录。 die(); }

我使用该进程检查目标文件夹的访问,并且不断收到错误返回。任何人都知道我在做什么错了?我几乎拥有其他一切。我只是不知道如何访问这个其他的服务器。

附录:我接受了下面的答案,因为它在技术上是正确的,而且我能够让Apache服务器被IIS服务器接受,但是,我试图完成的任务使用脚本无拘无束的能力将文件移动到服务器),这是不可行的。我将不得不在每台电脑上设置特定的功能。看起来最好的解决方法是在服务器上建立您想要复制文件的脚本,然后以更传统的方式将它们从本地驱动器移动到该位置。这意味着一个具有CGI-exec功能的文件服务器,尽管这是我们的服务器不具备的。

+0

如果您从代码中删除了@符号,您将得到更详细的解释 – 2010-03-24 22:23:59

回答

2

我猜你是在Windows和你有我:映射到一个共享如\\服务器2 \文件...

如果是这样,那是你的问题。这些映射仅适用于当前用户(例如admin帐户),而不适用于您的php可能运行的IUSR帐户(假设IIS)。解决方法:不要使用映射,而是使用完整的'unc'路径名,即'\\ server \ share \ folder \ file.ext',同时请记住IUSR帐户将需要访问这些共享/文件夹/文件

+0

您的解决方案听起来很有趣。我对网络文件结构并不熟悉(好吧,就像我应该为这样的项目所熟悉的那样,我想)。我今天早些时候尝试映射到'\\ server \ share \ etc \',但它似乎仍然没有工作。 – dclowd9901 2010-03-25 02:40:51

+0

建议从sysinternals启动神话般的ProcMonexe,看看它是什么帐户试图访问什么文件。只需启动它并筛选出'结果成功',然后输入其他文件io。 – SteelBytes 2010-03-25 08:24:30

+0

看,我很确定我得到的服务器名称是正确的,但我认为这只是我的程序出了问题。服务器几乎可以确定IIS,而我们目前唯一的访问权限是标准的Windows Workgroup访问。我只需要知道如何使PHP工作。 – dclowd9901 2010-03-25 17:01:40

0

是否可通过I:\path\to\file\\访问此其他服务器?

如果PHP报告打开目录时发生错误,您可能需要确保它存在并且您有访问权限。

此外,两个斜杠(\\)也可能导致问题。尝试检查。

+0

它可以通过该路径在本地文件系统上访问。通过什么协议我应该试图访问它? 我需要两个斜线。一个逃避另一个。 – dclowd9901 2010-03-24 22:16:34

+0

@ dclowd990可能是SMB协议。但是你称之为“本地”的服务器是什么? – 2010-03-24 22:22:43

+0

这将是我正在坐的机器。 – dclowd9901 2010-03-24 22:28:55

0
$destination_directory = 'I:/path/to/file/' . $theme_number; 
+0

我已经试过这个组合。没有工作。 – dclowd9901 2010-03-25 02:39:54

相关问题