Comment télécharger les fichiers dans magento
J'ai téléchargé quelques fichiers pour chaque client dans magento....
Puis j'ai listé les clients de détails avec le nom du fichier téléchargé ..
J'ai besoin de télécharger le fichier en utilisant magento code
C'est le code:
public function downloadAction() {
$entityid = $this->getRequest()->getParam('entity_id');
$customer_data = Mage::getModel('customer/customer')->load($entityid);
$filename = '';
if($customer_data){
$filename = $customer_data->getFileuploadname();
}
$filepath = '../uploads/'.$filename;
if (! is_file ( $filepath ) || ! is_readable ( $filepath )) {
throw new Exception ( );
}
$this->getResponse ()
->setHttpResponseCode ( 200 )
->setHeader ( 'Pragma', 'public', true )
->setHeader ( 'Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true )
->setHeader ( 'Content-type', 'application/force-download' )
->setHeader ( 'Content-Length', filesize($filepath) )
->setHeader ('Content-Disposition', 'inline' . '; filename=' . basename($filepath) );
$this->getResponse ()->clearBody ();
$this->getResponse ()->sendHeaders ();
readfile ( $filepath );
//exit(0);
}
Mais il didsplays erreurs quelque chose comme:
Trace:
#0 D:\wamp\www\mysite\app\code\core\Mage\Core\Controller\Varien\Action.php(419): Managecustomers_Users_IndexController->downloadAction()
#1 D:\wamp\www\mysite\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('download')
#2 D:\wamp\www\mysite\app\code\core\Mage\Core\Controller\Varien\Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#3 D:\wamp\www\mysite\app\code\core\Mage\Core\Model\App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#4 D:\wamp\www\mysite\app\Mage.php(683): Mage_Core_Model_App->run(Array)
#5 D:\wamp\www\mysite\index.php(87): Mage::run('', 'store')
#6 {main}
La uploads
dossier est dans magento dossier racine...
Comment puis-je télécharger le fichier....
La $filename
le nom de fichier téléchargé qui est à venir à partir de la base de données...
EDIT :
Quand j'ai enlevé le code:
if (! is_file ( $filepath ) || ! is_readable ( $filepath )) {
throw new Exception ( );
}
Ensuite changé le chemin d'accès comme :
$filepath = 'http://localhost/mysite/uploads/'.$filename;
Le téléchargement fait à la perfection....
- ok obtenu maintenant ....
Vous devez vous connecter pour publier un commentaire.
Ce sujet de l'utilisation de Magento code ? ...
_prepareDownloadResponse()
C'est la solution pour ce type de problèmes:
Le problème basé sur le chemin d'accès au fichier de questions.....maintenant sa résolu....
_prepareDownloadResponse()
comme suggéré par @pays des Merveilles, il n'a pas besoin deexit
À l'utilisation de Magento
_prepareDownloadResponse()
dans l'action d'un contrôleur lorsque vous avez accès au chemin d'accès du fichier effectuez les opérations suivantes dans votre classe de contrôleur: