我可以使用用PHP tmpfile创建的文件句柄进行CURL POST吗


Can I CURL POST using file handles created with PHP tmpfile?

假设我有一个使用PHP的tmpfile()函数创建的文件句柄数组,我可以使用PHP curl将文件作为附件发送吗?

通常,我会以$postdata[fieldname]='@path_to_file'的形式创建一个关联数组,但由于我无法确定tmpfile的路径(我只有句柄),我不知所措。

动机:我不想从磁盘上单独清除这些tmpfile的内容。我觉得tmpfile行为适合这个目的,但curl组件使事情变得复杂。

回答后的考虑:周的回答澄清了这一点,但我遇到了tmpfile的一个破坏交易的缺点:在FATAL或过程突然终止的情况下,会跳过"清除"行为,因此手动清除是必要的故障保护。我不认为有任何方法可以绕过通过文件系统并确保所有内容都被清理的过程,不管tmpfile与否

退房:http://us.php.net/manual/en/function.stream-get-meta-data.php

您可以执行以下操作:

$t = tmpfile();
$a = stream_get_meta_data($t);
$filename = $a['uri'];

这个问题类似于:使用文件句柄获取文件名(或删除文件)