How to get a temporary file path?

trainoasis picture trainoasis · Aug 23, 2012 · Viewed 52.7k times · Source

I know you can create a temporary file with tmpfile and than write to it, and close it when it is not needed anymore. But the problem I have is that I need the absolute path to the file like this:

"/var/www/html/lolo/myfile.xml"

Can I somehow get the path, even with some other function or trick?

EDIT:

I want to be able to download the file from the database, but without

$fh = fopen("/var/www/html/myfile.xml", 'w') or die("no no");
fwrite($fh, $fileData);
fclose($fh); 

because if I do it like this, there is a chance of overlapping, if more people try to download the same file at exactly the same time. Or am I wrong?

EDIT2:

Maybe I can just generate unique(uniqID) filenames like that, and than delete them. Or can this be too consuming for the server if many people are downloading?

Answer

legrandviking picture legrandviking · Aug 23, 2012

There are many ways you can achieve this, here is one

<?php 
// Create a temp file in the temporary 
// files directory using sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'MyFileName');
echo $temp_file;
?>

The above example will output something similar to: /var/tmp/MyFileNameX322.tmp