par
colage » 08 nov. 2020, 22:28
Bonjour,
Je fais appel à vous après beaucoup... beaucoup de recherches et essais!
J'ai un formulaire dont un des champs est une photo à uploader. l'objectif est d'enregistrer le fichier dans un dossier du serveur, et entrer son path dans une base mysql
Dans le fichier d'action php, impossible de charger la photo. Après testsss, je trouve que mon $_FILES['photo'] ne renvoie rien. Et JE NE TROUVE PAS POURQUOI !
Pouvez vous m'aider?
Merci beaucoup!!
Voici le code de mon formulaire:
Code : Tout sélectionner
<form name="form_nouvelle" method="post" action="../assets/config/check.php">
Titre : <INPUT type="text" name="titre" value="">
Origine : <INPUT type="text" name="origine" value="">
Catégorie : <SELECT name="type" value="0">
<OPTION VALUE="aperitif">Apéritif</OPTION>
<OPTION VALUE="entreech">Entrée chaude</OPTION>
<OPTION VALUE="entreefr">Entrée froide</OPTION>
<OPTION VALUE="platv">Plat - Viande</OPTION>
<OPTION VALUE="platp">Plat - Poisson</OPTION>
<OPTION VALUE="plata">Plat - Autre</OPTION>
<OPTION VALUE="accompagnement">Accompagnement</OPTION>
<OPTION VALUE="salade">Salade</OPTION>
<OPTION VALUE="dessert">Dessert</OPTION>
</SELECT><br>
Ingrédients : <br><TEXTAREA name="ingredients" rows="7"></TEXTAREA><br>
Explication : <br><TEXTAREA name="explication" rows="7"></TEXTAREA><br>
Ajouter une photo : <INPUT type="file" name="photo"><INPUT type=hidden name=MAX_FILE_SIZE VALUE=128></p>
<center>
<INPUT type="submit" name="valider" value="Enregistrer">
</center>
</form>
Et celui de mon fichier de traitement check.php:
Code : Tout sélectionner
// Constantes
define('TARGET', '../../recettes/photos/'); // Repertoire cible
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
/************************************************************
* Creation du repertoire cible si inexistant
*************************************************************/
/*if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}*/
/************************************************************
* Script d'upload
*************************************************************/
if(!empty($_POST))
{
// On verifie si le champ est rempli
if( !empty($_FILES['photo']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['photo']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['photo']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['photo']['error'])
&& UPLOAD_ERR_OK === $_FILES['photo']['error'])
{
// On renomme le fichier
$nomImage = md5(uniqid()) .'.'. $extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['photo']['tmp_name'], TARGET.$nomImage))
{
$message = 'Upload réussi !';
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Erreur dans les dimensions de l\'image !';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'Le fichier à uploader n\'est pas une image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Veuillez remplir le formulaire svp !';
}
}
echo $message;
echo $nomImage;
Bonjour,
Je fais appel à vous après beaucoup... beaucoup de recherches et essais!
J'ai un formulaire dont un des champs est une photo à uploader. l'objectif est d'enregistrer le fichier dans un dossier du serveur, et entrer son path dans une base mysql
Dans le fichier d'action php, impossible de charger la photo. Après testsss, je trouve que mon $_FILES['photo'] ne renvoie rien. Et JE NE TROUVE PAS POURQUOI !
Pouvez vous m'aider?
Merci beaucoup!!
Voici le code de mon formulaire:
[code]
<form name="form_nouvelle" method="post" action="../assets/config/check.php">
Titre : <INPUT type="text" name="titre" value="">
Origine : <INPUT type="text" name="origine" value="">
Catégorie : <SELECT name="type" value="0">
<OPTION VALUE="aperitif">Apéritif</OPTION>
<OPTION VALUE="entreech">Entrée chaude</OPTION>
<OPTION VALUE="entreefr">Entrée froide</OPTION>
<OPTION VALUE="platv">Plat - Viande</OPTION>
<OPTION VALUE="platp">Plat - Poisson</OPTION>
<OPTION VALUE="plata">Plat - Autre</OPTION>
<OPTION VALUE="accompagnement">Accompagnement</OPTION>
<OPTION VALUE="salade">Salade</OPTION>
<OPTION VALUE="dessert">Dessert</OPTION>
</SELECT><br>
Ingrédients : <br><TEXTAREA name="ingredients" rows="7"></TEXTAREA><br>
Explication : <br><TEXTAREA name="explication" rows="7"></TEXTAREA><br>
Ajouter une photo : <INPUT type="file" name="photo"><INPUT type=hidden name=MAX_FILE_SIZE VALUE=128></p>
<center>
<INPUT type="submit" name="valider" value="Enregistrer">
</center>
</form>
[/code]
Et celui de mon fichier de traitement check.php:
[code]
// Constantes
define('TARGET', '../../recettes/photos/'); // Repertoire cible
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
/************************************************************
* Creation du repertoire cible si inexistant
*************************************************************/
/*if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}*/
/************************************************************
* Script d'upload
*************************************************************/
if(!empty($_POST))
{
// On verifie si le champ est rempli
if( !empty($_FILES['photo']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['photo']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['photo']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['photo']['error'])
&& UPLOAD_ERR_OK === $_FILES['photo']['error'])
{
// On renomme le fichier
$nomImage = md5(uniqid()) .'.'. $extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['photo']['tmp_name'], TARGET.$nomImage))
{
$message = 'Upload réussi !';
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Erreur dans les dimensions de l\'image !';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'Le fichier à uploader n\'est pas une image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Veuillez remplir le formulaire svp !';
}
}
echo $message;
echo $nomImage;
[/code]