Merge pull request #19 from coling/master

Fix overzealous cleanup of temporary files.
This commit is contained in:
Alexey Kopytko 2019-12-26 11:42:47 +09:00 committed by GitHub
commit 116412c4e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 14 deletions

View File

@ -604,7 +604,7 @@ class Spreadsheet_Excel_Writer_Workbook extends Spreadsheet_Excel_Writer_BIFFwri
$total_worksheets = count($this->_worksheets);
for ($i = 0; $i < $total_worksheets; $i++) {
while ($tmp = $this->_worksheets[$i]->getData()) {
while ($tmp = $this->_worksheets[$i]->getData(true)) {
$OLE->append($tmp);
}
}

View File

@ -652,16 +652,6 @@ 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;
}
}
/**
@ -682,7 +672,7 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
*
* @return string The data
*/
public function getData()
public function getData($cleanup = true)
{
$buffer = 4096;
@ -690,9 +680,8 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
if (isset($this->_data)) {
$tmp = $this->_data;
unset($this->_data);
$fh = $this->_filehandle;
if ($this->_using_tmpfile) {
fseek($fh, 0);
fseek($this->_filehandle, 0);
}
return $tmp;
}
@ -701,6 +690,19 @@ class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwr
if ($tmp = fread($this->_filehandle, $buffer)) {
return $tmp;
}
// All data has now been read (both from memory & from file) so we
// can now trash the file
if ($cleanup) {
if ( $this->_filehandle ) {
fclose($this->_filehandle);
$this->_filehandle = '';
}
@unlink($this->_tmp_file);
$this->_tmp_file = '';
$this->_using_tmpfile = false;
$this->_datasize = 0;
}
}
// No data to return