Php 返回额外路径前缀的tempnam
当我们打电话时Php 返回额外路径前缀的tempnam,php,Php,当我们打电话时 $tmpFilename = tempnam(SIEFREPOSITORY, 'Sief'); 它回来了 /export/sief/share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW Siefrespository是 /share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW 为什么要添加额外的/export/sief前缀?似乎siefrespository路径不可写、不存在或不可
$tmpFilename = tempnam(SIEFREPOSITORY, 'Sief');
它回来了
/export/sief/share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW
Siefrespository是
/share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW
为什么要添加额外的/export/sief前缀?似乎
siefrespository
路径不可写、不存在或不可用,在这种情况下,tempnam
会返回到其他路径,如下所述:
在指定目录中创建具有唯一文件名且访问权限设置为0600的文件如果目录不存在,tempnam()可能会在系统的临时目录中生成一个文件,并返回该文件的名称
及
如果PHP无法在指定的dir参数中创建文件,它将使用系统默认值。在NTFS上,如果指定的目录包含的文件超过65534个,也会发生这种情况
检查该路径是否有问题,并查看上面链接站点中的注释,这里有一些关于获得对
tempnam
的更多控制的小贴士,这是因为/share符号链接到/export/sief/share,而更高版本的php从tempnam()返回绝对路径这给了我符号链接[/export/…]的目标
它给我带来了问题,因为它不在open_basedir中。谢谢。我发现了问题。这是因为符号链接和tempnam()现在返回绝对路径。