我们有一堆linuix和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 盒子的任何想法?
您应该将文件共享挂载到本地目录:
mount -f smbfs //user@server2/Share/CPI/Data.txt /media/share
然后从 PHP 脚本访问/media/share/Share/CPI/Data.txt
。
PHP 需要对共享进行身份验证,即使它是公共的,使用 fopen
或 opendir
不会执行此操作。