PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-01-2016 18:25:49

Guillaume_SX
Membre
Inscription : 27-01-2016
Messages : 1

Upload PHP

Bonjour, étant débutant en PHP, et m'étant déjà documenté sur plusieurs sites internets, je reste dans une impasse due à mon faible niveau.

Voiçi donc mon problème : je souhaite faire une page d'administration d'un site vitrine d'un artiste.
Le développement de la page vitrine s'est déroulé sans problème en page statique (HTML5+CSS3+JQuery).
Mais là je bloque : je souhaite donc faire une page d'administration qui me permettrait d'uploader des images sur le répertoire web et de pouvoir indiquer leur nom.
J'ai effectivement trouvé un petit script sympa, mais il ne gère pas l'entrée personnalisée d'un nom...

Voici la page HTML avec le formulaire :

<html>
  <head>
    <title>Upload d'une image sur le serveur !</title>
  </head>
  <body>
    <form method="POST" action="upload.php" enctype="multipart/form-data">
      <label>Nom de l'oeuvre : </label><input name="nom" class="element text long" type="text" maxlength="255" value="">
      </br>
      <label for="image"> Choisir l'image : </label><input type="file" name="image">
      <input type="hidden" name="MAX_FILE_SIZE" value="100000">
      </br>
      <input type="submit" name="envoyer" value="Envoyer">
    </form>
  </body>
</html>

Et voici le script PHP qui me permet d'uploader :


<?php
$dossier = 'upload/';
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg ou jpeg...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>

Toute aide est la bienvenue, merci wink

Hors ligne

#2 27-01-2016 19:07:37

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Upload PHP

il faut autre chose pour sauver le nom indiqué, le plus courant est une base de donnée sql, mais un simple fichier csv peut suffire.

http://php.net/manual/fr/function.fgetcsv.php
pour lire le contenu du csv qui peut être vide au début
ajout de la nouvelle ligne au tableau php, avec $fichier et $_POST['nom']
http://php.net/manual/fr/function.fputcsv.php
pour écrire le contenu du tableau php en csv

et http://php.net/manual/fr/function.fgetcsv.php
pour lire le contenu du csv sur la page qui doit afficher les images avec leur nom.

Hors ligne

Pied de page des forums