Command line 文件存在,但返回“0”;系统找不到指定的文件";使用UNC路径时
我正在使用PHP检查文件是否存在,然后获取其大小 代码以前工作得很好,但现在我们使用UNC路径,我可以检查路径是否与Command line 文件存在,但返回“0”;系统找不到指定的文件";使用UNC路径时,command-line,php,unc,Command Line,Php,Unc,我正在使用PHP检查文件是否存在,然后获取其大小 代码以前工作得很好,但现在我们使用UNC路径,我可以检查路径是否与file(exists($filename))一起存在,但是当我尝试运行exec(“getsize”。$filename,$out)时它尝试运行大约一分钟,然后返回“系统找不到指定的文件”。运行此程序的用户当前是管理员,否则我会认为这是权限问题,但如果它查找到包含file_exists()的文件,但exec()失败,我不确定还会有什么问题 如果您有任何帮助或意见,我们将不胜感激,谢
file(exists($filename))
一起存在,但是当我尝试运行exec(“getsize”。$filename,$out)时代码>它尝试运行大约一分钟,然后返回“系统找不到指定的文件”。运行此程序的用户当前是管理员,否则我会认为这是权限问题,但如果它查找到包含file_exists()的文件,但exec()失败,我不确定还会有什么问题
如果您有任何帮助或意见,我们将不胜感激,谢谢
代码示例:
<?php
$filename = "\\\\server\\share\\file_path_with_folders\\3019-74 (2).zip"; //Example file
if(file_exists($filename)){
echo "File Exists: " . $filename . "\r\n";
// "File Exists: " . $filename" are getting echoed out, so it is succeeding
} else {
echo "File doesn't exist: " . $filename . "\r\n";
}
exec("getsize" . $filename, $out); //Runs command line command
//Getting "The system cannot find the file specified" error
echo "Out: " . $out[0] . "\r\n";
//Echos "Out: " and nothing else
?>
如有疑问,请运行
不过,说真的,你应该用你最喜欢的文件访问监控工具来监控这个过程
我不得不冒险猜测一下,但是文件名中的空格可能会导致您的问题。调用getsize
时,可能需要用一组引号将$filename
括起来
组装要传递给exec()的命令时,命令和该命令的参数之间还需要一个空格。(此脚本生成等效的“getsizetest.txt”而不是“getsize test.txt”)
如果可能的话,您应该在本地计算机上运行这些命令。我以为您已经使用了引号,但我添加了带双引号的$filename,这没有任何帮助。我不确定我是否能够在服务器上运行它,必须与服务器人员交谈,但我一定会记住这一点。谢谢@EKW@gv0000添加了一个关于我今天早上注意到的另一个bug的注释,我强烈建议使用PHP交互式shell(这就是我注意到另一个bug的原因…如果我从我自己的建议开始…)