Présentation
Le code retour CopixActionReturn::CONTENT sert à demander à Copix de télécharger un contenu vers le poste client.
Ce code est pratique lorsque le contenu est généré à la volée et que vous ne souhaitez pas le conserver sur le serveur.
Exemple :
return _arContent ($generateurDeFichier->generate ($data, 'zip')); //ou avec la syntaxe complète return new CopixActionReturn (CopixActionReturn::CONTENT, $generateurDeFichier->generate ($data, 'zip'));
Options supplémentaires
Il est possible de spécifier des options supplémentaires lorsque l'on demande le téléchargement de contenu, soit :
- la disposition du fichier (content-disposition)
- le nom du fichier (filename)
- le type mime du contenu (content-type, option par défaut)
- le mode de transfert du fichier (content-transfer-encoding)
Les options sont passées sous la forme d'un tableau associatif.
Disposition du fichier
Cette option peut prendre deux valeurs :
- inline (valeur par défaut si vous ne spécifiez rien)
- attachement
Exemple :
return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('content-disposition'=>'attachement')); //et avec inline return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('content-disposition'=>'inline'));
Spécifier un nom de fichier
Cette option permet d'indiquer au navigateur quel sera le nom du fichier à télécharger. Cela évite que le fichier à télécharger prenne le nom du script php qui génère le contenu.
Exemple :
return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('filename'=>'archive.zip'));
Spécifier le type MIME du fichier
Cette option permet d'indiquer le type du contenu que nous somme en train d'envoyer au navigateur.
Si rien n'est spécifié et qu'aucun nom de fichier (filename) n'a été spécifié, le type sera "application/octet-stream". Si rien n'est spécifié et qu'un nom de fichier à été donné, le type sera déterminé en fonction de l'extension. Sinon, le type sera celui spécifié.
Exemples :
//Le type MIME sera application/octet-stream car on ne sait pas comment le déterminer return _arContent ($generateurDeFichier->generate ($data, 'zip')); //Le type MIME sera celui du zip grâce au nom du fichier return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('filename'=>'archive.zip')); //le type MIME sera celui du zip car on le spécifie explicitement return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('content-type'=>CopixMIMEType::getFromExtension ('.zip'))));
Note Ici, on utilise CopixMIMETypes pour récupérer le type MIME du fichier. CopixMIMETypes prend en charge la plupart des formats connus.
Note Le type du fichier est la seule option qui n'a pas besoin d'être passée sous la forme de tableau, ainsi vous pouvez écrire :
return _arContent ($generateurDeFichier->generate ($data, 'zip'), CopixMIMEType::getFromExtension ('.zip')));
Mode de transfert
Cette option permet de spécifier au navigateur comment transférer le contenu que l'on lui envoie.
Par défaut, Copix utilise "binary".
Exemple:
return _arContent ($generateurDeFichier->generate ($data, 'zip'), array ('content-transfer-encoding'=>'binary')));
