X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GnumericToExcel.php;h=bcf1a63d020a8ffce79c24b21cb28058b1a2b801;hb=b341a92085a9d4a5cfb1d2043e599420472aa6c8;hp=afe83bbab64c274d47dec1f68eb417e3c7806327;hpb=26d4e1d0e6ce8f34cf4556009a3bda6e8f54e107;p=Pman.Core
diff --git a/GnumericToExcel.php b/GnumericToExcel.php
index afe83bba..bcf1a63d 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,17 +85,27 @@ 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;