Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2666 → Rev 2667

/trunk/jrest/services/ImportXLS.php
328,20 → 328,36
if ($this->bilan) {
$retour = array('import_erreurs' => implode("\n", $this->bilan) . "\n");
} else {
// le cast en string des nombres permet d'unifier le parsing du retour
// car il n'est destiné qu'à être affiché
$retour = array(
'import_obs_ajoutees' => '"'.$obs_ajouts.'"',
'import_images_ajoutees' => '"'.$nb_images_ajoutees.'"',
'import_mots_cles_ajoutes' => '"'.$nb_mots_cle_ajoutes.'"',
'import_colonnes_non_traitees' => '"'.implode(', ', $filtre->exclues).'"'
'import_obs_ajoutees' => (string)$obs_ajouts,
'import_images_ajoutees' => (string)$nb_images_ajoutees,
'import_mots_cles_ajoutes' => (string)$nb_mots_cle_ajoutes,
'import_colonnes_non_traitees' => implode(', ', $filtre->exclues)
);
}
// le JSON ci-dessus est envoyé à la main car provenant d'une requête synchrone
// certains navigateurs/plugins le modifient à la volée pour l'afficher (genre jsonView)
// ce qui fait rater le parsing de la requete
header("Content-Type: text/html; charset=utf-8");
echo implode("###",$retour);
// Dans le cas où le client ne sait pas lire le retour d'upload
// on stocke les stats en session pour les appeler plus tard
// car ceci peut poser notamment problème pour les requêtes CORS
$_SESSION['upload_stats'] = $retour;
// On envoie quand même les stats pour les clients qui savent ou peuvent
// les lire directement après l'upload
$this->envoyerJson($retour);
die();
}
public function getRessource() {
return self::getStatsDernierUpload();
}
static function getStatsDernierUpload() {
// renvoi des statistiques du dernier envoi de fichier
$stats = !empty($_SESSION['upload_stats']) ? $_SESSION['upload_stats'] : null;
header("Content-Type: application/json; charset=utf-8");
echo json_encode($stats);
die();
}
 
/* detectionEntete() sert deux rôles:
1) détecter le type de colonne attendu à partir des textes de la ligne d'en-tête afin de define()