-
- Ryan Sun _Kuafu

-
Total Posts: 316
Joined: 2008-11-14
FL
|
I don’t know how did you run your scripts but here is an exporting example
<?php // Include Magento application require_once ( "app/Mage.php" ); umask(0);
// Initialize Magento Mage::app();
// You have two options here, // "frontend" for frontend session or "adminhtml" for admin session Mage::getSingleton("core/session", array("name" => "adminhtml"));
$session = Mage::getSingleton("admin/session"); $session->login('admin','password');
if ($session->isLoggedIn()) { $fileName = 'orders.csv'; $grid = Mage::app()->getLayout()->createBlock('adminhtml/sales_order_grid'); $content = $grid->getCsvFile(); _prepareDownloadResponse($fileName , $content); } else echo "logged out";
//copyed from admin contrller function _prepareDownloadResponse($fileName, $content, $contentType = 'application/octet-stream', $contentLength = null) { $isFile = false; $file = null; if (is_array($content)) { if (!isset($content['type']) || !isset($content['value'])) { return $this; } if ($content['type'] == 'filename') { $isFile = true; $file = $content['value']; $contentLength = filesize($file); } }
Mage::app()->getResponse() ->setHttpResponseCode(200) ->setHeader('Pragma', 'public', true) ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true) ->setHeader('Content-type', $contentType, true) ->setHeader('Content-Length', is_null($contentLength) ? strlen($content) : $contentLength) ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"') ->setHeader('Last-Modified', date('r'));
if (!is_null($content)) { if ($isFile) { Mage::app()->getResponse()->clearBody(); Mage::app()->getResponse()->sendHeaders();
$ioAdapter = new Varien_Io_File(); $ioAdapter->open(array('path' => $ioAdapter->dirname($file))); $ioAdapter->streamOpen($file, 'r'); while ($buffer = $ioAdapter->streamRead()) { print $buffer; } $ioAdapter->streamClose(); if (!empty($content['rm'])) { $ioAdapter->rm($file); } } else { Mage::app()->getResponse()->setBody($content); } } return $this; }
you have to make sure the login script and export script share the same session
|