I am trying print some shipment details as a CSV file and I am almost done in implementing this but it does not gives the the option for downloading.It automatically create the file and save it in the directory mentioned.
I think I am missing _prepareDownloadResponse() function but how do I implement this.
I am using this code ->
$file_path = 'sample_shipment.csv';
$mage_csv = new Varien_File_Csv();
$mage_csv->saveData($file_path, $content);
Edit:
All this code is in my indexcontroller.php
full code in indexcontroller.php ->
class Company_Manifestupload_IndexController extends Mage_Adminhtml_Controller_Action
{
public function indexAction() {
echo 'Manifestupload Index!';
}
public function bluedartmanifestuploadAction() {
$request = $this->getRequest();
$shipmentIds = $request->getPost('shipment_ids', array());
$file_path = 'manifest_upload_'.Mage::getSingleton('core/date')->date('d-m-Y_H-i-s').'_csv.csv';
$mage_csv = new Varien_File_Csv();
$shipment_csv=array();
/* Putting data in $shipment_csv[] */
$mage_csv->saveData($file_path, $shipment_csv);
}
In order to make the csv file downloadable, just put the following code inside the related controller action:
Hope this helps.
Edit:
Please find the updated controller action code.
Edit 2: The above code will only work properly in ideal case.It will not generate proper Csv when there “\n”s and “,”s in the fields .To make it work properly one can use code from varien file CSV .I’ll add it here-
First make array of values in $data[] as above then instead of using
$csv.=implode(',',$data)."\n"use the below code.