Dateidownload im Backend erstellen

Einige Bereiche von Magento bieten die Möglichkeit an, nach Selektion bestimmter Kriterien, die entsprechenden Daten als Download herunterzuladen. Dies kann jedoch auch für eigene Extensions sehr nützlich sein. Magento bietet hierzu eine Funktion an, die dies ermöglicht.

Der Controller der eigenen Extension erbt von Methoden von Mage_Core_Controller_Varien_Action, darunter auch die für den Download relevante Methode _prepareDownloadResponse. Der folgende Code zeigt eine exemplarische Anwendung.

...
   public function exportYourDataAction(){
      $fileName   = 'your_csv.csv';
      $type       = 'text/csv';
      $content    = 'content-of-your_csv.csv';
      $this->_prepareDownloadResponse($fileName, $content, $type);
   }
...

Im Controller wird der Methode _prepareDownloadResponse ein Dateiname, sowie der Inhalt übergeben, die Angabe eines Typs ist optional. Auf diese Weise kann dem Redakteur eine Vielzahl an Dateien zum Download angeboten werden, von weiteren csv- als auch temporär erstellten Dateien.
Sollte man sich bei dem Application header nicht ganz sicher sein, so reicht dazu folgender Befehl in der Shell:
file -i deine-datei