There is stream_get_meta_data. It works for a stream that you get from tmpfile(). If you call it on a regular file pointer then you might only get the basename.
$meta_data = stream_get_meta_data($stream_or_file_pointer);
$filename = $meta_data["uri"];
echo $filename;
Example for tmpfile():
"/private/var/folders/v3/n54x13jx5v7610fw9dm0wcxm0000gn/T/phpCJvevP"
Example for fopen("somefile", "r"):
"test"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…