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

时间:2013-02-06 17:10:47

标签: php curl temporary-files

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

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

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

答案后的考虑:周杰伦的答案清除了这一点,但我遇到了tmpfile的交易破坏性缺点:如果发生致命或突然终止进程,则会跳过“清理”行为,因此需要手动清洗作为故障安全。我认为没有办法规避通过文件系统的过程并确保清理所有内容,tmpfile与否。

1 个答案:

答案 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