Upload d'image ==> Problème :s

Résolu
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009 - 27 juin 2007 à 21:59
cs_alphabe2000 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 26 novembre 2012 - 29 sept. 2008 à 16:25
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

deathgate Messages postés 78 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 août 2007
22 août 2007 à 17:37
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 ...
3
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009
22 août 2007 à 20:07
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
0
cs_alphabe2000 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 26 novembre 2012
29 sept. 2008 à 15:33
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à
0
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009
29 sept. 2008 à 15:38
salut,
ok je post ça de suite dans 5min

A+

> http://sald.ifrance.com <==
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009
29 sept. 2008 à 15:39
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 <==
0
cs_alphabe2000 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 26 novembre 2012
29 sept. 2008 à 16:12
Merci, mais tu peux le faire pour un formulaire qui disposent de champs de texte et de champs de fichier 

je suis là
0
cs_alphabe2000 Messages postés 6 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 26 novembre 2012
29 sept. 2008 à 16:25
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à
0
Rejoignez-nous