Upload d'image ==> Problème :s [Résolu]

Signaler
Messages postés
114
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2009
-
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
26 novembre 2012
-
Bonjour à tous!
J'ai un petit problème pour uploader un fichier (une image) ! Enfin c'est plutôt que je ne vois pas comment il faut faire !
En fait, le code pour uploader le fichier vers le serveur est bon mais je voudrais que l'utilisateur qui choisit d'envoyer sont image inscrive aussi son nom dans un label puis un petit commentaire dans un autre ! Tout cela en affichant la date ! Donc en gros je veux que quand l'utilisateur clique sur 'Uploader', l'image qu'il à choisit s'affiche avec son nom et son commentaire en dessous de celle-ci !
Quelqu'un pourrai m'aider pour monter ce projet ?

Voici mon code :

<form method="post" enctype="multipart/form-data" action="upload.php">

</form>
<?php

if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'upload/'; // dossier où sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }

    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];

    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file,

'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";
}

?>

Merci à tous !

7 réponses

Messages postés
78
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
28 août 2007

salut,

c'est pas très dur comme truc  ....déja les info de ton projet, combien d'images ? combien d'upload, fréquence, la taille des commentaire.

Ca peut aider pour trouver la meilleure solution ... tu en as plein xml, base de données ...
Messages postés
114
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2009

Ha désolé, un vieux commentaire que j'ai oublié e retirer!  lol
Non mais j'ai réussi depuis longtemps ! ^^
Merci quand même !

Tchou
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
26 novembre 2012

salut peux-tu me dire comment tu as fait pour régler ton pb stp, j'en ai besoin pour produire un formulaire d'insertion (d'information et de fichier)
merci d'avance!!!
je suis là
Messages postés
114
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2009

salut,
ok je post ça de suite dans 5min

A+

> http://sald.ifrance.com <==
Messages postés
114
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2009

Voila, j'ai fait ça, à toi de te débrouiller maintenant ^^

function getExtension($filename){
  $ext = substr(strtolower(strrchr(basename($filename), ".")), 1);
  return $ext;
}
// fonction qui va sécurisé le nom du fichier
function clean_file_name($var){
  $var = strtr($var,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
  $var = eregi_replace("[^a-zA-Z0-9.-]","",$var);
  return $var;
}

if($_POST['upload'])
{
  // configuration :
 
  // repertoire où vont être placé les fichiers
  $login = $_SESSION['login'];
  @mkdir ("./upload/" . $login . "/", 0777);
  $content_dir = './upload/' . $login . '/';
  // ajouter ici les autres extensions que vous autorisé
  $extensions=array('jpg','jpeg','gif','png');

  // est ce qu'un fichier a ete selectionné ?
  if(empty($_FILES['fichier']['name'])){
    echo "<script language="javascript">alert('Aucun fichier sélectionné.');</script>";
    header('Location: index.php?page=new_tuto&upload_err=0');
  }
 
  // on test si le fichier est uploadé
  $tmp_file = $_FILES['fichier']['tmp_name'];
  if( !is_uploaded_file($tmp_file) ){
    echo "<script language="javascript">alert('Le fichier est introuvable');</script>";
    header('Location: index.php?page=new_tuto&upload_err=0');
   }
 
  // renommons le fichier pour plus de sécurité
  $name_file = clean_file_name($_FILES['fichier']['name']);
 
  // on test les caracteres non valide
 
  // est ce que l'extension est valide ?
  if(!in_array(getExtension($name_file),$extensions)) {
    echo "<script language="javascript">alert('Le format de votre fichier n'est pas autorisé.');</script>";
    header('Location: index.php?page=new_tuto&upload_err=0');
  }

  // upload
  if(!move_uploaded_file($tmp_file,$content_dir.$name_file)){
    echo "<script language="javascript">alert('Impossible de copier le fichier !');</script>";
    header('Location: index.php?page=new_tuto&upload_err=0');
  }
  else
  {
    $source = imagecreatefromjpeg($content_dir.$name_file);
    $taille = getimagesize($content_dir.$name_file);
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    if ($taille[0] > 703 OR $taille[1] > 703)
    {
    $compression = 2;
    while ($taille[0] > 703 OR $taille[1] > 703)
    {
    $taille[0] = $taille[0] / $compression;
    $taille[1] = $taille[1] / $compression;
    $destination = imagecreatetruecolor($taille[0], $taille[1]);// On crée la miniature vide
    $compression = $compression / 1.333;
    }
    }
    else
    {
    $destination = imagecreatetruecolor($taille[0], $taille[1]);
    }
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    imagejpeg($destination, $content_dir.$name_file);
    echo "<script language="javascript">alert('L\'image à été correctement uploadée !');</script>";
    header('Location: index.php?page=new_tuto&upload_err=0');
  }
 
}

A+

> http://sald.ifrance.com <==
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
26 novembre 2012

Merci, mais tu peux le faire pour un formulaire qui disposent de champs de texte et de champs de fichier 

je suis là
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
26 novembre 2012

Merci, mais tu peux le faire pour un formulaire qui dispose de champs de texte et de champs de fichier 
puis d'un unique bouton envoyer qui envoie le tout simultanement dans la bd
(ou les infos contenues dans les  champs de texte vont dans la bd et les fichiers dans un dir du serveur)
le plus important est que lors de l'affichage, le fichier correspond aux infos affichées/insérées
Merci encore!!!

je suis là