Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2369 → Rev 2370

/trunk/jrest/lib/Cel.php
183,13 → 183,14
 
protected function envoyer($donnees = null, $mime = 'text/html', $encodage = 'utf-8', $json = false) {
// Traitements des messages d'erreurs et données
$sortie = $donnees;
if (count($this->messages) != 0) {
http_response_code(500);// Internal Server Error
$code_http = 500; // Internal Server Error
$mime = 'application/json';
$json = true;
$sortie = $this->messages;
$donnees->cause = $this->messages;
} else {
$sortie = $donnees;
$code_http = 200; // OK
if (is_null($donnees)) {
$sortie = 'OK';
}
201,7 → 202,7
// Encodage au format et JSON et envoie sur la sortie standard
$contenu = $json ? json_encode($sortie) : $sortie;
 
$this->envoyerContenu($encodage, $mime, $contenu);
$this->envoyerContenu($encodage, $mime, $contenu, $code_http);
}
 
private function envoyerDebogage() {
218,13 → 219,13
}
}
 
private function envoyerContenu($encodage, $mime, $contenu) {
private function envoyerContenu($encodage, $mime, $contenu, $code_http=200) {
if (!is_null($mime) && !is_null($encodage)) {
header("Content-Type: $mime; charset=$encodage");
} else if (!is_null($mime) && is_null($encodage)) {
header("Content-Type: $mime");
}
http_response_code(200);// OK
http_response_code($code_http);
print $contenu;
}
 
/trunk/jrest/lib/ImageRecreation.php
147,8 → 147,18
 
return $image_redimensionnee;
}
public function stockerFichierOriginal($fichier, $id) {
 
/**
* Déplace une image temporaire uploadée vers le répertoire de stockage d'images,
* en enregistrant les métadonnées et tout le tintouin.
* Si $conserverFichiersTemporaires vaut true, l'image est copiée et non déplacée.
*
* @param unknown $fichier
* @param unknown $id
* @param unknown $conserverFichiersTemporaires
* @return Ambigous <multitype:, boolean>|boolean
*/
public function stockerFichierOriginal($fichier, $id, $conserverFichiersTemporaires=false) {
$chemin_fichier_origine = is_array($fichier) ? $fichier['tmp_name'] : $fichier;
$chemin_base_fichier = $this->creerSiNecessaireEtRenvoyerCheminStockageFichierPourIdEtFormat($id, 'O');
156,7 → 166,7
$chemin_fichier = $chemin_base_fichier.'/'.$nom_fichier;
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier);
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier, $conserverFichiersTemporaires);
if ($deplacement_fichier) {
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_fichier);
310,11 → 320,25
return $image_redimensionnee;
}
 
public function stockerImageExterne($chemin_fichier_temp, $chemin_destination) {
if (is_uploaded_file($chemin_fichier_temp)) {
$deplacement = move_uploaded_file($chemin_fichier_temp, $chemin_destination);
/**
* Déplace un fichier temporaire vers une destination donnée. Si
* $conserverFichiersTemporaires vaut true, le fichier est copié et non déplacé.
*
* @param unknown $chemin_fichier_temp
* @param unknown $chemin_destination
* @param string $conserverFichiersTemporaires
* @return boolean
*/
public function stockerImageExterne($chemin_fichier_temp, $chemin_destination, $conserverFichiersTemporaires=false) {
if ($conserverFichiersTemporaires === true) {
// copie du fichier
$deplacement = copy($chemin_fichier_temp, $chemin_destination);
} else {
$deplacement = rename($chemin_fichier_temp, $chemin_destination);
if (is_uploaded_file($chemin_fichier_temp)) {
$deplacement = move_uploaded_file($chemin_fichier_temp, $chemin_destination);
} else {
$deplacement = rename($chemin_fichier_temp, $chemin_destination);
}
}
 
return $deplacement;
500,24 → 524,26
imagedestroy($image);
}
 
/**
* Supprime une image du disque, ainsi que tous les formats générés
*
* @param Integer $id
* @return boolean true si tous les formats y compris l'original ont été détruits, false s'il en reste au moins un
*/
public function detruireImageSurDisque($id) {
$formats = $this->getFormats();
 
// on detruit aussi l'image originale
$formats[] = 'O';
 
$destruction_formats_fichier = false;
 
// destructions de chacuns des formats définis
$destruction_formats_fichier = true;
// destructions de chacun des formats définis
foreach($formats as $format) {
 
$dossier_format = $this->obtenirDossierPourFormat($id, $format);
$nom_fichier = $this->convertirIdBddVersNomFichier($id, $format);
 
if (file_exists($dossier_format.'/'.$nom_fichier)) {
$destruction_formats_fichier = unlink($dossier_format.'/'.$nom_fichier);
} else {
$destruction_formats_fichier = true;
$detruit = unlink($dossier_format.'/'.$nom_fichier);
$destruction_formats_fichier = ($destruction_formats_fichier && $detruit);
}
}