Skip to content

$response.addContent

Description

Crée ou ajoute du contenu au buffer de réponse. La méthode supporte les données texte (via une valeur string) et les données binaires (via un objet file) mais pas un mix des deux. Il n'est en effet pas permis d'écrire des données textuelles puis d'y ajouter des données binaires. Il n'est pas non plus permis d'ajouter des données binaires si la réponse en contient déjà. En fait seules les données texte peuvent être complétées.

Les éléments d'en-tête de la réponse (status, headers (dont le content-type), etc.) doivent être définis avant l'ajout de données dans le buffer de réponse car il n'est plus possible de modifier ces éléments une fois que l'on envoie des données dans le buffer, à moins d'invalider le buffer au moyen de la méthode $response.reset.

Syntaxe

$response.addContent( content [ , options ] )

Paramètres

content string / file / map / array

Donnée à inscrire dans ou à ajouter au buffer.

Dans le cas où la donnée est un map ou un array, la méthode génère et envoie une représentation json de l'objet à la response. Elle se charge également de spécifier le content-type à application/json, pour autant que l'option contentType ne soit pas définie.

Dans le cas où la donnée est un fichier, la méthode se charge de renseigner les headers Content-Type et Content-Dispositionà partir des métadonnées du fichier si les options correspondantes ne sont pas spécifiées. Le fichier est alors proposé en dispositioninline`, incluant le nom du fichier.

Globalment, il est possible de surcharger les headers Content-Type et Content-Disposition soit via les options correspondantes, soit après l'appel.

options map

Map d'options dépendant du type de contenu. Les options reconnues sont:

contentDisposition string

Mode du header Content-Disposition. La propriété peut prendre la valeur inline ou attachment. La valeur par défaut est inline.

Si la valeur ne contient pas de filename, la méthode se charge de compléter l'ajouter en reprenant le nom du fichier.

contentType string

Valeur du Content-Type à reprendre dans la réponse.

Dans le cas où le contenu est un fichier, la méthode se charge automatiquement de renseigner le Content-Type si l'option n'est pas renseignée.

Retour

Retourne toujours null.

Exemples

L'exemple ci-dessous retourne une représentation json d'un map.

1
2
3
4
$response.addContent({
  foo: 1,
  bar: "xyz"
});

L'exemple ci-dessous construit une réponse qui retourne un code HTTP 500 avec le texte de la dernière erreur retournée par le moteur.

1
2
3
$response.setStatus(500);
$response.addContent($script.getLastError());
$response.setContentType("text/plain; charset=utf-8");