par
lucieemtl » 22 mars 2017, 11:54
Bonjour à tous, mon problème n'est pas très long à expliquer : j'essaie de permettre à mon client, via son administration, de créer un album photos, et ce en php.
Je parviens à créer un sous-dossiers dans un répertoires précis, mais je ne parviens pas à y stocker plusieurs photos.
Voici mon formulaire :
Code : Tout sélectionner
<form id="creAlbum" name="creAlbum" method="POST" action="#" enctype="multipart/form-data" role="form">
<div class="form-group"><label class="control-label">Nom de l'album</label><input type="text" name="nameAlbum" class="form-control underlined" required></div>
<div class="form-group"><label class="control-label">Contenu</label><input name="pictures[]" type="file" class="form-control underlined" multiple></div>
<div class="modal-footer">
<input type="submit" value="Créer" name="creAlbum" class="btnCreated btn btn-primary">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
</div>
</form>
Et son code PHP associé :
Code : Tout sélectionner
<?php
if(isset($_POST['creAlbum']))
{
$nameAlbum = $_POST['nameAlbum'];
mkdir("./pics/".$nameAlbum."/", 0777);
$dossier = "./pics/".$nameAlbum;
$taille_maxi = 10000000;
$extensions = array('.jpg', '.jpeg', '.png');
$nbfichiersEnvoyes = count($fichier_temp);
for($i=0; $i<$nbfichiersEnvoyes; $i++) {
$fichier= basename($_FILES['pictures']['name'][$i]);
$fichier_temp= $_FILES['pictures']['tmp_name'][$i];
$taille= filesize($_FILES['pictures']['tmp_name'][$i]);
$extension= strrchr($_FILES['pictures']['name'][$i], '.');
if(!in_array($extension, $extensions)) $erreur= '<span class="non">Vous devez uploader le fichier'.$i.' de type JPEG, JPG, ou PNG.</span>';
if($taille>$taille_maxi) $erreur= 'Le fichier'.$i.' est trop gros.';
if(!isset($erreur))
{
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($fichier_temp, $dossier. $fichier)) echo'<span class="okdac">Upload'.$i.' effectué avec succès !</span>';
else echo'<span class="non">Echec de l\'upload'.$i.' !</span>';
}
else echo $erreur;
}
}
?>
Pouvez-vous m'aider à corriger mon erreur s'il vous plaît ?
Une bonne journée à tous !
Bonjour à tous, mon problème n'est pas très long à expliquer : j'essaie de permettre à mon client, via son administration, de créer un album photos, et ce en php.
Je parviens à créer un sous-dossiers dans un répertoires précis, mais je ne parviens pas à y stocker plusieurs photos.
Voici mon formulaire :
[code]
<form id="creAlbum" name="creAlbum" method="POST" action="#" enctype="multipart/form-data" role="form">
<div class="form-group"><label class="control-label">Nom de l'album</label><input type="text" name="nameAlbum" class="form-control underlined" required></div>
<div class="form-group"><label class="control-label">Contenu</label><input name="pictures[]" type="file" class="form-control underlined" multiple></div>
<div class="modal-footer">
<input type="submit" value="Créer" name="creAlbum" class="btnCreated btn btn-primary">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
</div>
</form>
[/code]
Et son code PHP associé :
[code]
<?php
if(isset($_POST['creAlbum']))
{
$nameAlbum = $_POST['nameAlbum'];
mkdir("./pics/".$nameAlbum."/", 0777);
$dossier = "./pics/".$nameAlbum;
$taille_maxi = 10000000;
$extensions = array('.jpg', '.jpeg', '.png');
$nbfichiersEnvoyes = count($fichier_temp);
for($i=0; $i<$nbfichiersEnvoyes; $i++) {
$fichier= basename($_FILES['pictures']['name'][$i]);
$fichier_temp= $_FILES['pictures']['tmp_name'][$i];
$taille= filesize($_FILES['pictures']['tmp_name'][$i]);
$extension= strrchr($_FILES['pictures']['name'][$i], '.');
if(!in_array($extension, $extensions)) $erreur= '<span class="non">Vous devez uploader le fichier'.$i.' de type JPEG, JPG, ou PNG.</span>';
if($taille>$taille_maxi) $erreur= 'Le fichier'.$i.' est trop gros.';
if(!isset($erreur))
{
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($fichier_temp, $dossier. $fichier)) echo'<span class="okdac">Upload'.$i.' effectué avec succès !</span>';
else echo'<span class="non">Echec de l\'upload'.$i.' !</span>';
}
else echo $erreur;
}
}
?>
[/code]
Pouvez-vous m'aider à corriger mon erreur s'il vous plaît ? :(
Une bonne journée à tous !