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() |