我可以使用用PHPTMPFILE创建的文件句柄来卷曲POST吗?

我可以使用用PHPTMPFILE创建的文件句柄来卷曲POST吗?,php,curl,temporary-files,Php,Curl,Temporary Files,假设我有一个使用PHP的tmpfile()函数创建的文件句柄数组,我可以使用PHP curl将文件作为附件发送吗 通常,我会以$postdata[fieldname]='@path_to_file'的形式创建一个关联数组,但由于我无法确定tmpfile的路径(我只有句柄),所以我不知所措 动机:我不想从磁盘上单独清除这些tmp文件的内容。我觉得tmpfile行为适合这个目的,但是curl组件使事情变得复杂 回答后考虑:Jay的回答澄清了这一点,但我遇到了tmpfile的一个破坏交易的缺点:如果进

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

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

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

回答后考虑:Jay的回答澄清了这一点,但我遇到了tmpfile的一个破坏交易的缺点:如果进程发生致命或突然终止,“清理”行为将被跳过,因此作为故障保护,手动清除是必要的。我不认为有任何方法可以绕过检查文件系统并确保所有内容都已清理的过程,不管是否是tmpfile。

请查看:

您可以执行以下操作:

$t = tmpfile();
$a = stream_get_meta_data($t);

$filename = $a['uri'];

这个问题类似于:

tmpfile()
的文档中,您可以看到两个函数允许您检索完整路径:
tempnam()
和sys\u get\u temp\u dir()`正确,但我的印象是,只有tmpfile在脚本结束时或在fclose上进行自我清理。你的假设是对的,因此我理解为什么使用
tmpfile()
awesome更容易!谢谢你,杰,你是对的,你链接的问题会帮我省下这个问题。