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