Changer la taille maximum de la photo formulaire

Résolu/Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 17 oct. 2016 à 00:15
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 19 oct. 2016 à 15:07
Bonsoir,
J'aimerai modifier la taille maximum d'une photo depuis le formulaire le problème sais que je sais même pas a combien elle a été configurer, vu que j'ai trouver ce formulaire.



<?php
// © Jérome Réaux : http://j-reaux.developpez.com - http://www.jerome-reaux-creations.fr
// ---------------------------------------------------
// ADMIN NEWS : TRAITEMENT des photos
// ---------------------------------------------------
// RECUPERATION DES DONNEES DU FORMULAIRE
// photo
	$newsPhotoAvant 		= (isset($_POST['newsPhotoAvant']))? 		formatage_from_post($_POST['newsPhotoAvant']) : '';
	$newsPhotoDelete 		= (isset($_POST['newsPhotoDelete']))? 		formatage_from_post($_POST['newsPhotoDelete']) : '';
	$newsPhotoLargeur 		= (isset($_POST['newsPhotoLargeur']))? 		formatage_from_post($_POST['newsPhotoLargeur']) : '';

// -----------------
// Gestion des photos supprimees
if ($newsPhotoAvant!='' && $newsPhotoDelete=='ON')
{
	// Suppression de l'ancienne Photo
	if(file_exists('../../'.NEWS_REP_PHOTOS.$newsPhotoAvant)) {
		unlink('../../'.NEWS_REP_PHOTOS.$newsPhotoAvant);
	}
	// -----------------
	// Suppression dans la base de donnees par UPDATE
	$update_query 			= "UPDATE ".T_NEWS_TABLE." ".
							" SET news_photo 	= '' ".
							" WHERE news_id 	= :newsId;";
  try {
	$pdo_update 			= $pdo->prepare($update_query);
	$pdo_update->bindValue(':newsId', 		$newsId,		PDO::PARAM_INT);
	$pdo_update->execute();
  } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
	// -----------------
}

// ----------------------------------
// VERIFICATION / TRAITEMENT de la photo si uploadee
// ----------------------------------
$msgErreurPhoto 			= ''; 	// message d erreur
$traiterPhotoOK 			= true; // (par defaut)

if(isset($_FILES['newsPhoto']) && $_FILES['newsPhoto']['size']>0)
{
	// -------------------------------------
	// extension du fichier uploadé (en minuscule)
	$file_Extension 		= strtolower(pathinfo($_FILES['newsPhoto']['name'],PATHINFO_EXTENSION));

	// Type MIME réel du fichier (important : évite les fichiers NON valides, dont l'extension a été renommée)
//	$finfo 					= new finfo(FILEINFO_MIME_TYPE, NULL); // Retourne le type mime
//	$file_MimeType 			= $finfo->file($_FILES['newsPhoto']['tmp_name']);

	// (alternative, si la CLASS finfo n'est pas supportée)
	$finfo 					= finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à la extension mimetype
	$file_MimeType 			= finfo_file($finfo, $_FILES['newsPhoto']['tmp_name']);
	finfo_close($finfo);

	// -------------------------------------
	// GESTION DES ERREURS
	// -------------------------------------
	// on vérifie les RESTRICTIONS sur les fichiers
	if (UPLOAD_ERR_OK<>0 && UPLOAD_ERR_FORM_SIZE==2) {
		$msgErreurPhoto 	.= 'Taille de fichier trop important ('.NEWS_SIZEMAX_PHOTO.' octets)<br />';
		$traiterPhotoOK 	= false;
	}
	// -----------------
	// on vérifie la TAILLE MAXI
	elseif ($_FILES['newsPhoto']['size'] > NEWS_SIZEMAX_PHOTO) {
		$msgErreurPhoto 	.= 'Taille de fichier supérieure à la taille maxi autorisée ('.NEWS_SIZEMAX_PHOTO.' octets)<br />';
		$traiterPhotoOK 	= false;
	}
	// -----------------
	// on vérifie l'EXTENSION
	elseif(!in_array($file_Extension, explode(',', constant('NEWS_EXTENSION_PHOTO')))) {
		$msgErreurPhoto 	.= 'L\'extension ne correspond pas (Extensions acceptées  : <b>'.constant('NEWS_EXTENSION_PHOTO').'</b>)<br />';
		if(in_array($file_MimeType, explode(',', constant('NEWS_MIMETYPE_PHOTO')))) {
		  $msgErreurPhoto 	.= '<b>Attention</b> : Ce fichier est peut-être corrompu !<br />';
		  $msgErreurPhoto 	.= 'L\'extension ne correspond pas au type MIME !<br />';
		}
		$traiterPhotoOK 	= false;
	}
	// -----------------
	// on vérifie le TYPE MIME
	elseif(!in_array($file_MimeType, explode(',', constant('NEWS_MIMETYPE_PHOTO')))) {
		$msgErreurPhoto 	.= 'Le type MIME ne correspond pas (Extensions acceptées  : <b>'.constant('NEWS_EXTENSION_PHOTO').'</b>)<br />';
		if(in_array($file_Extension, explode(',', constant('NEWS_EXTENSION_PHOTO')))) {
		  $msgErreurPhoto 	.= '<b>Attention</b> : Ce fichier est peut-être corrompu !<br />';
		  $msgErreurPhoto 	.= 'L\'extension ne correspond pas au type MIME !<br />';
		}
		$traiterPhotoOK 	= false;
	}
	// -----------------
	if ($traiterPhotoOK===false) {
		$msgErreurPhoto 	= '<b>Erreur (Photo)</b> :<br />'.$msgErreurPhoto.'Impossible d\'enregistrer le fichier.';
	}
	// -------------------------------------
	// si pas d'erreur : TRAITEMENT
	// -------------------------------------
	if ($traiterPhotoOK===true)
	{
		// --------------------
		// enregistement de la PHOTO sous forme id_nom-image(.jpg, ...)
		// NB : id etant unique (auto-increment), cela rend le nom de la photo unique
		$file_Upload 		= $newsId.'_'.$_FILES['newsPhoto']['name'];
		$file_Upload 		= formatage_nom_fichier($file_Upload); // remplacement des caracteres speciaux + tout en minuscules
		$file_Upload 		= str_replace('.jpeg','.jpg',$file_Upload); // on remplace aussi .jpeg par .jpg
		// --------------------
		// enregistrement de la photo dans le dossier
		$temp = $_FILES['newsPhoto']['tmp_name'];
		move_uploaded_file($temp, '../../'.NEWS_REP_PHOTOS.$file_Upload);
		// --------------------
		// REDIMENSIONNEMENT et SAUVEGARDE de la PHOTO (si necessaire)
		// ecraser (remplacer) la photo (meme rep, meme nom)
		$redimPHOTOOK 		= fctredimimage($newsPhotoLargeur,0,'','','../../'.NEWS_REP_PHOTOS,$file_Upload);
		// --------------------
		// SUPPRESSION des ANCIENNES PHOTOS (si necessaire) dans le dossier
		if ($newsPhotoAvant!='' && $newsPhotoAvant!=$file_Upload)
		{
			if(file_exists('../../'.NEWS_REP_PHOTOS.$newsPhotoAvant)) {
				unlink('../../'.NEWS_REP_PHOTOS.$newsPhotoAvant);
			}
		}
		// -----------------
		// enregistrement du NOM dans la base de donnees par UPDATE
		$update_query 		= "UPDATE ".T_NEWS_TABLE." SET ".
							" news_photo 			= :file_Upload, ".
							" news_photo_largeur	= :newsPhotoLargeur ".
							" WHERE news_id 		= :newsId;";
	  try {
		$pdo_update 		= $pdo->prepare($update_query);
		$pdo_update->bindValue(':file_Upload', 		$file_Upload,		PDO::PARAM_STR);
		$pdo_update->bindValue(':newsPhotoLargeur', $newsPhotoLargeur,	PDO::PARAM_STR);
		$pdo_update->bindValue(':newsId', 			$newsId,			PDO::PARAM_INT);
		$pdo_update->execute();
	  } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
		// -----------------
	}

} // fin TRAITEMENT PHOTO
// ---------------------------------------------------
A voir également:

1 réponse

jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
17 oct. 2016 à 01:27
Bonjour,
Quand tu parles de "taille" .. tu veux parler des dimensions de la photo ou de la taille mémoire du fichier ?


le problème sais que je sais même pas a combien elle a été configurer, vu que j'ai trouver ce formulaire.

Tu l'as trouvé où ?
Tu veux configurer quoi exactement ?

Sachant que ce code utilise, visiblement, de nombreuses fonctions et constantes ... qui se trouvent très certainement définies dans d'autres fichiers... (que tu ne nous montres pas...)




1
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 19/10/2016 à 14:20
Bonjour, vu le nombre de fichier qu'il y a, je vais peu être pas tous les publier.
J'ai trouver cela sur https://php.developpez.com/cours/ ( je sais pas si j'ai le droit de publié des liens externe ).

Donc je parle de taille, je parle de la mémoire que fait la photo.

Et aussi comment vous voyer que cette page fait appel a d'autre fichiers ?

Merci d'avance.
0
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703 > flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021
19 oct. 2016 à 14:26
Je vois que le script utilise des CONSTANTES.
Hors elles en sont pas définies dans cette page... j'en conclus donc qu'il y a au moins un autre fichier dans lequel elles sont déclarées...

En regardant le lien que tu nous as donné.. j'ai trouvé le fichier : modules/mod_news/news_config.php

Dedans, tu verras les lignes :
// ---------------------------------------------------------------
// PARAMETRES POUR LES PHOTOS / FICHIERS
// ---------------------------------------------------------------
// ==> Choix du dossier de stockage (ces dossiers doivent être déprotégés en ecriture : chmod 777)
if(!defined('NEWS_REP_PHOTOS')) 			define('NEWS_REP_PHOTOS', 		NEWS_UPLOAD.'images/news_photos/');		// PHOTOS
if(!defined('NEWS_REP_FILES')) 			define('NEWS_REP_FILES', 		NEWS_UPLOAD.'files/news_files/');		// FICHIERS
// -------------------------
// UPLOAD : Restrictions sur les fichiers
// taille maxi des fichiers
if(!defined('NEWS_SIZEMAX_PHOTO')) 		define('NEWS_SIZEMAX_PHOTO', 	10000000);	// 10 Mo
if(!defined('NEWS_SIZEMAX_FILE')) 		define('NEWS_SIZEMAX_FILE',		10000000);	// 10 Mo

// EXTENSIONS acceptées
if(!defined('NEWS_EXTENSION_PHOTO')) 	define('NEWS_EXTENSION_PHOTO',	'jpg,jpeg,png,gif');
if(!defined('NEWS_EXTENSION_FILE')) 	define('NEWS_EXTENSION_FILE',	'pdf');

// MIME TYPES acceptés
if(!defined('NEWS_MIMETYPE_PHOTO')) 	define('NEWS_MIMETYPE_PHOTO',	'image/jpeg,image/png,image/gif');
if(!defined('NEWS_MIMETYPE_FILE')) 		define('NEWS_MIMETYPE_FILE',	'application/pdf');
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
19 oct. 2016 à 14:41
Trop fort merci :)
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
19 oct. 2016 à 14:44
J'aurai une autre question es que le système utiliser est vraiment sécuriser ?

Car j'ai ajouter avant l'accès a cette page administration que l’utilisateur connecter sois administrateur sinon il ne pas accéder a cette page.
0
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703 > flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021
19 oct. 2016 à 14:46
Pense à mettre cette discussion en RESOLUE (lien qui se trouve sous le titre de ta question)
0