0

我们有一堆 linux 和 windows 服务器。

在我的 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 机器的任何想法?

4

1 回答 1

1

您应该将文件共享挂载到本地目录:

mount -f smbfs //user@server2/Share/CPI/Data.txt /media/share

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

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

于 2012-08-15T14:27:08.367 回答