我使用PHP来检查文件是否存在然后获得它的大小。
代码之前工作得很好但是现在我们正在使用UNC路径我可以检查路径是否存在于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
?>
答案 0 :(得分:2)
如有疑问,请运行Process Monitor.
但是,说真的,您应该使用您喜欢的文件访问监控实用程序来监控该过程。
我不得不冒险猜测,但文件名中的空格可能会导致您的问题。调用$filename
时,您可能需要使用一组引号括住getsize
。
组装要传递给exec()的命令时,还需要在命令和该命令的参数之间留一个空格。 (这个脚本产生的等价于&#34; getsizetest.txt&#34;而不是&#34; getsize test.txt&#34;)
如果可能,您应该在本地计算机的interactive PHP shell中运行这些命令。