X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GnumericToExcel.php;h=d8da8da207ab80e0d0ca68e9eb870c1db07d9f0c;hb=1a0a4a8e210ae6708cb6caed163d24970fabd4c9;hp=afe83bbab64c274d47dec1f68eb417e3c7806327;hpb=26d4e1d0e6ce8f34cf4556009a3bda6e8f54e107;p=Pman.Core diff --git a/GnumericToExcel.php b/GnumericToExcel.php index afe83bba..d8da8da2 100644 --- a/GnumericToExcel.php +++ b/GnumericToExcel.php @@ -28,6 +28,10 @@ class Pman_Core_GnumericToExcel extends Pman return true; } + function get($v, $opts=array()) + { + + } function post($fname) { $ml = (int) ini_get('suhosin.post.max_value_length'); @@ -44,9 +48,9 @@ class Pman_Core_GnumericToExcel extends Pman $xml = iconv("UTF-8", "UTF-8//IGNORE", $xml); - //$xml = str_replace('é', 'e', $xml); + //$xml = str_replace('�', 'e', $xml); //$xml = str_replace("\xA0", ' ', $xml); - //$xml = str_replace("Ø", 'dia.',$xml); + //$xml = str_replace("�", 'dia.',$xml); //$this->addEvent("DOWNLOAD", false, isset($_REQUEST['title']) ? $_REQUEST['title'] : '???'); @@ -81,21 +85,31 @@ class Pman_Core_GnumericToExcel extends Pman clearstatcache(); if (!file_exists($targetTmp) || !filesize($targetTmp)) { - header("HTTP/1.0 400 Internal Server Error"); + header("HTTP/1.0 400 Internal Server Error - Convert error"); die("ERROR CONVERTING?:" . $cmd ."\n

OUTPUT:". htmlspecialchars($out)); } - unlink($srcTmp); - - $fh = fopen($targetTmp, 'r'); + // unlink($srcTmp); + if (empty($fname)) { + $fname = basename($targetTmp); + } + $fname .= preg_match('/\.xls/i', $fname) ? '' : '.xls'; // make sure it ends in xls.. + header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="' .addslashes($fname). '"'); - - // will not work on IE... - needs while/fget.. - fpassthru($fh); + header('Content-length: '. filesize($targetTmp)); + header("Content-Transfer-Encoding: binary"); + if ($file = fopen($targetTmp, 'rb')) { + while(!feof($file) and (connection_status()==0)) { + print(fread($file, 1024*8)); + flush(); + } + fclose($file); + } + unlink($targetTmp); exit; } - + }