Subversion Repositories eFlore/Applications.cel

Rev

Rev 620 | Rev 663 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 620 Rev 632
Line 14... Line 14...
14
	/**
14
	/**
15
	 * Méthode appelée avec une requête de type GET.
15
	 * Méthode appelée avec une requête de type GET.
16
	 * Renvoie les infos sur l'image correspondant à l'id passé en parametre
16
	 * Renvoie les infos sur l'image correspondant à l'id passé en parametre
17
	*/
17
	*/
18
	public function getElement($uid)
18
	public function getElement($uid)
19
	{
19
	{d	
20
		
-
 
21
		// uid[0] : utilisateur obligatoire
20
		// uid[0] : utilisateur obligatoire
22
		// uid[1] : identifiant image obligatoire
21
		// uid[1] : identifiant image obligatoire
Line 23... Line 22...
23
 
22
 
24
		// Controle detournement utilisateur
23
		// Controle detournement utilisateur
Line 77... Line 76...
77
		$champs_a_ignorer = array('ci_ce_observation');
76
		$champs_a_ignorer = array('ci_ce_observation');
Line 78... Line 77...
78
		
77
		
79
		foreach($valeurs_metadonnees as $champ  => $valeur)
78
		foreach($valeurs_metadonnees as $champ  => $valeur)
Line 80... Line 79...
80
		{
79
		{
81
			
80
			
Line 82... Line 81...
82
			if(!in_array($champ,$champs_a_ignorer)) {
81
			if (!in_array($champ,$champs_a_ignorer)) {
83
				if($champ == 'ci_meta_date') {
82
				if ($champ == 'ci_meta_date') {
Line 84... Line 83...
84
	
83
	
Line 109... Line 108...
109
	{
108
	{
110
		// Controle detournement utilisateur
109
		// Controle detournement utilisateur
111
		session_start();
110
		session_start();
112
		$this->controleUtilisateur($pairs['identifiant']);
111
		$this->controleUtilisateur($pairs['identifiant']);
Line 113... Line 112...
113
				
112
				
114
		foreach($_FILES as $file) {
113
		foreach ($_FILES as $file) {
115
			$infos_fichier = $file ;
114
			$infos_fichier = $file ;
Line 116... Line 115...
116
		}
115
		}
Line 117... Line 116...
117
		
116
		
118
		if($this->ajouterImageSurDdEtBdd($pairs, $infos_fichier)) {
117
		if ($this->ajouterImageSurDdEtBdd($pairs, $infos_fichier)) {
119
			
118
			
120
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
119
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
121
			// en quittant directement après l'envoi
120
			// en quittant directement après l'envoi
Line 122... Line 121...
122
			$this->envoyerMessageCreationEffectuee();
121
			$this->envoyerMessageCreationEffectuee();
Line 123... Line 122...
123
			exit;
122
			exit;
124
		}
123
		}
125
 
124
 
126
	}
125
	}
127
	
126
	
128
	/**
127
	/**
129
	 * Ajout une image dans la base de données et stocke le fichier en fabriquant les miniatures,
128
	 * Ajoute une image dans la base de données et stocke le fichier en fabriquant les miniatures,
130
	 * renvoie le nouvel id d'image en cas de succès
129
	 * renvoie le nouvel id d'image en cas de succès
131
	 * 
130
	 * 
Line -... Line 131...
-
 
131
	 * @param array $pairs le tableau contenant l'identifiant de l'utilisateur
132
	 * @param array $pairs le tableau contenant l'identifiant de l'utilisateur
132
	 * @param array $infos_fichier les infos sur le fichier à traiter, de la même forme que les
Line 133... Line 133...
133
	 * @param array $infos_fichier les infos sur le fichier à traiter, de la même forme que les
133
	 * élements du tableau $_FILES de php
134
	 * élements du tableau $_FILES de php
134
	*/
135
	*/
135
	public function ajouterImageSurDdEtBdd($pairs, $infos_fichier) {
136
	public function ajouterImageSurDdEtBdd($pairs, $infos_fichier) {
136
		
Line 137... Line 137...
137
		
137
		$identifiant_utilisateur = $pairs['identifiant'];
Line 156... Line 156...
156
		$informations_image['ci_publiable_eflore'] = 'false' ;
156
		$informations_image['ci_publiable_eflore'] = 'false' ;
157
		$informations_image['ci_nom_original'] = $infos_fichier['name'] ;
157
		$informations_image['ci_nom_original'] = $infos_fichier['name'] ;
Line 158... Line 158...
158
		
158
		
159
		// le md5 du fichier sert à repérer les images en doublons
159
		// le md5 du fichier sert à repérer les images en doublons
160
		$informations_image['ci_md5'] = md5_file($infos_fichier['tmp_name']) ;
160
		$informations_image['ci_md5'] = md5_file($infos_fichier['tmp_name']) ;
Line 161... Line 161...
161
		$informations_image['ci_ce_utilisateur'] = $pairs['identifiant'] ;
161
		$informations_image['ci_ce_utilisateur'] = $identifiant_utilisateur ;
162
		
162
		
Line 163... Line 163...
163
		$requete_insertion_infos_image = $this->construireRequeteInsertionImage($informations_image);
163
		$requete_insertion_infos_image = $this->construireRequeteInsertionImage($informations_image);
164
		$resultat_insertion_infos_image = $this->executerRequeteSimple($requete_insertion_infos_image);
164
		$resultat_insertion_infos_image = $this->executerRequeteSimple($requete_insertion_infos_image);
165
 
165
 
166
		if(!$resultat_insertion_infos_image) {
166
		if(!$resultat_insertion_infos_image) {
Line 167... Line 167...
167
			$message = "Echec de l'insertion dans la base de donnees : " ;
167
			$message = "Echec de l'insertion dans la base de donnees : " ;
Line 168... Line 168...
168
			trigger_error($message, E_USER_ERROR);
168
			trigger_error($message, E_USER_ERROR);
169
        }
169
        }
170
 
170
 
171
		$id_nouvelle_image = $this->obtenirIdImagePourIdentifiantEtOrdre($pairs['identifiant'], $nouvel_ordre);
171
		$id_nouvelle_image = $this->obtenirIdImagePourIdentifiantEtOrdre($identifiant_utilisateur, $nouvel_ordre);
172
		
172
		
Line 173... Line 173...
173
		if(!$id_nouvelle_image)
173
		if(!$id_nouvelle_image)
174
		{
174
		{
Line 175... Line 175...
175
			$message =  'Impossible d\'obtenir le nouvel identifiant de l\'image' ;
175
			$message =  'Impossible d\'obtenir le nouvel identifiant de l\'image' ;
176
			trigger_error($message, E_USER_ERROR);
176
			trigger_error($message, E_USER_ERROR);
177
		}
177
		}
178
		
178
		
Line 191... Line 191...
191
 
191
 
Line 192... Line 192...
192
		$nouvel_ordre = 0 ;
192
		$nouvel_ordre = 0 ;
193
		
193
		
194
		$requete_selection_ordre_max ='SELECT MAX(ci_ordre) as max_ordre FROM cel_images WHERE ci_ce_utilisateur = '.$this->proteger($id_utilisateur) ;
194
		$requete_selection_ordre_max ='SELECT MAX(ci_ordre) as max_ordre FROM cel_images WHERE ci_ce_utilisateur = '.$this->proteger($id_utilisateur) ;
195
		$resultat_requete_ordre_max = $this->executerRequete($requete_selection_ordre_max);
195
		$resultat_requete_ordre_max = $this->executerRequete($requete_selection_ordre_max);
196
		
196
				
197
		if($resultat_requete_ordre_max) {
197
		if($resultat_requete_ordre_max) {
198
			$nouvel_ordre = $resultat_requete_ordre_max[0]['max_ordre'];
198
			$nouvel_ordre = $resultat_requete_ordre_max[0]['max_ordre'];
Line 199... Line 199...
199
			$nouvel_ordre = $nouvel_ordre++;
199
			$nouvel_ordre++;
200
		}
200
		}
Line 252... Line 252...
252
	}
252
	}
Line 253... Line 253...
253
	
253
	
Line 254... Line 254...
254
	private function envoyerMessageCreationEffectuee() {
254
	private function envoyerMessageCreationEffectuee() {
-
 
255
			
255
			
256
		header('HTTP/1.0 200 Created');
256
		header('HTTP/1.0 200 Created');
257
		echo 'OK';
Line 257... Line 258...
257
		exit() ;
258
		exit() ;
258
	}
259
	}