$yenc
¶
Librairie de méthodes yEnc
Exemple de script qui permet d'encoder un fichier et de remonter la valeur encodée dans la page web.
// encode.ewts
// Exemple de script pour l'encodage d'un fichier selon méthode yEncode
// et affichage de la valeur "encodée" dans un textarea à l'écran. Pour
// afficher la valeur encodée dans le navigateur, on doit procéder en 2
// étapes: on gènère un fichier sur le temp et on répond avec un message
// qui inclut un iframe et qui relance un appel REST à notre script pour
// télécharger la valeur encodée.
// On est obligé de procéder ainsi car le charset de la page web peut ne
// pas être adapté à l'affichage de la valeur encodée. On utilise donc
// un iframe pour charger le contenu dans un charset adapté.
if ($$.params != null) {
// traitement de la request /ewt/rest/sample/encode?val=xxx
if ($str.match($$.params.val, "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")) {
var file = $file.load($$.params.val, $app.getWorkDirectory()),
txt = $file.read($$.params.val, { charset: "iso-8859-1" });
$response.setContentType("text/html; charset: utf-8");
$response.addContent(
`<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<textarea cols="120" rows="10">${txt}</textarea>
</body>
</html>`);
// suppression du fichier
$file.delete(file);
}
else {
$response.setContentType("text/html; charset: utf-8");
$response.addContent(
`<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
Erreur : vous n'êtes pas autorisé(e) à lire ce fichier
</body>
</html>`);
}
}
else {
// encodage
var src = $file.load("c:/Temp/TestImage.png"),
dst = $yenc.encode(src, { dest: $file.create() }),
res = $file.path(dst, { relativeTo: $app.getWorkDirectory() });
$msg.info(`<iframe src="/ewt/rest/sample/encode?val=${dst}" style="width:100%"></iframe>`,
null, { disableOutputEscaping: "yes" });
}