Bug #17572 Temporary files are not removed

git-svn-id: https://svn.php.net/repository/pear/packages/Spreadsheet_Excel_Writer/trunk@320822 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Daniel O'Connor 2011-12-10 02:05:53 +00:00
parent ad79fa75f3
commit 6f5b44cd6b
2 changed files with 20 additions and 3 deletions

View File

@ -90,6 +90,12 @@ class Spreadsheet_Excel_Writer_BIFFwriter extends PEAR
*/
var $_tmp_dir;
/**
* The temporary file for storing the OLE file
* @var string
*/
var $_tmp_file;
/**
* Constructor
*

View File

@ -463,7 +463,8 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
$this->_dv = array();
$this->_tmp_dir = $tmp_dir;
$this->_tmp_dir = $tmp_dir;
$this->_tmp_file = '';
$this->_initialize();
}
@ -493,8 +494,8 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
$fh = tmpfile();
} else {
// For people with open base dir restriction
$tmpfilename = tempnam($this->_tmp_dir, "Spreadsheet_Excel_Writer");
$fh = @fopen($tmpfilename, "w+b");
$this->_tmp_file = tempnam($this->_tmp_dir, "Spreadsheet_Excel_Writer");
$fh = @fopen($this->_tmp_file, "w+b");
}
if ($fh === false) {
@ -625,6 +626,16 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
$this->_storeDataValidity();
}*/
$this->_storeEof();
if ( $this->_tmp_file != '' ) {
if ( $this->_filehandle ) {
fclose($this->_filehandle);
$this->_filehandle = '';
}
@unlink($this->_tmp_file);
$this->_tmp_file = '';
$this->_using_tmpfile = true;
}
}
/**