148,7 → 148,17 |
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,12 → 320,26 |
return $image_redimensionnee; |
} |
|
public function stockerImageExterne($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 { |
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); |
} |
} |
|