假设我有一个使用PHP的tmpfile()函数创建的文件句柄数组,我可以使用PHP curl将文件作为附件发送吗?
通常,我会以$ postdata [fieldname] ='@ path_to_file'的形式创建一个关联数组,但由于我无法确定tmpfile的路径(我只有句柄),所以我在亏了。
动机:我不想从磁盘上单独清除这些tmpfiles的内容。我觉得tmpfile行为适合这个目的,但curl组件使事情变得复杂。
答案后的考虑:周杰伦的答案清除了这一点,但我遇到了tmpfile的交易破坏性缺点:如果发生致命或突然终止进程,则会跳过“清理”行为,因此需要手动清洗作为故障安全。我认为没有办法规避通过文件系统的过程并确保清理所有内容,tmpfile与否。
答案 0 :(得分:1)
退房:http://us.php.net/manual/en/function.stream-get-meta-data.php
您可以执行以下操作:
$t = tmpfile();
$a = stream_get_meta_data($t);
$filename = $a['uri'];
此问题类似于:Getting filename (or deleting file) using file handle