2012-08-15 121 views
0

我们有一堆linuix和windows服务器。使用PHP将文件写入Windows Server的Linux操作系统Web共享

在我的Windows桌面上,我可以看到所有的份额。

使用PHP我试图使用UNC路径将文件写入Windows共享上的目录。

//ServerShare/directory/file.txt 

使用fwrite表示它成功写入文件,但文件从不在服务器上存在。

使用opendir函数说目录不可访问。

这是源代码非常简单。

$file_name = "\\SERVER2\Share\CPI\data.txt"; 

if (!$handle = fopen($file_name, 'w')) { 
    echo "Cannot open file ($file_name)"; 
    exit; 
} 

// Write $somecontent to our opened file. 
$somecontent = "this is a test"; 
if (fwrite($handle, $somecontent) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 

echo "Success, wrote ($somecontent) to file ($file_name)"; 

fclose($handle); 

想知道需要设置什么类型的权限才能让Linux机器将文件写入Windows机箱?

+0

fyi,$ file_name是这样的 $ file_name =“\\\\ SERVER2 \\ Share \\ CPI_INFO \\ data.txt”; – 2012-08-15 14:26:59

回答

1

你应该安装的文件共享到本地目录:

mount -f smbfs //[email protected]/Share/CPI/Data.txt /media/share 

然后从你的PHP脚本访问/media/share/Share/CPI/Data.txt

PHP需要对共享进行身份验证,即使它是公开的,并且使用fopenopendir不会这样做。

+0

如果我让我们的网络管理员在本地将文件共享挂载到Linux中,我仍然需要进行身份验证?你会用什么建议我将数据文件写入Windows服务器而不是fopen,opendir,fwrite? – 2012-08-15 14:32:13

+0

系统管理员可能会自动使用凭据安装共享。我会建议在本地编写文件,然后复制它们,在Windows服务器上安装ssh或ftp。 – 2012-08-15 14:50:06

相关问题