Upload de fichiers

[Résolu]
Signaler
Messages postés
37
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
29 janvier 2006
-
Messages postés
37
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
29 janvier 2006
-
salut!
voila je cherche à uploader un fichier depuis un formulaire sur le serveur. comment faire?
j'essai depuis hier et j'arrive pas a le faire marcher. si vous pouvez m'aider avec un script assez simple.
merci.

qan c abrupt loulou met a pik

6 réponses

Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

Salut,

Voila un exemple:

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

</form>


remarque: pour uploader un fichier , il faut impérativement qu'il y a dans la balise <form>: enctype ="multipart/form-data"

upload.php
<?php
// Regarde si le fichier a été uploader
if( isset( $_FILES["fichier"] ) )
{
     // Si c'est le cas on le copie vers un emplacement souhaiter
      if( @copy( $_FILES["fichier"]["tmp_name"], "/".$_FILES["fichier"]["name"] ) )
      {
           echo "l'upload du fichier a reussie";
      }
      else 
      {
          echo "erreur durant la copie du fichier";
      }
}
?>


Bon quelle explication:

D'abord la variables $_FILES est une variable superglobale contenant toutes les informations relatives à un fichier uploader.
Renseigne toi sur cette variable pour savoir quelles informations sur le fichier uploader elle peu te donner.
Ensuite ton fichier uploader est d'abord mis dans un répertoire temporaire, donc pour le mettre dans le dossier que tu veux, il faut utiliser la fonction copy() dont sa signature est la suivante:
int copy( string source, string destination )
Ta source sera du type: $_FILES["nom du champ"]["tmp_name"]
Ta destination sera du type: "url".$_FILES["nom du champ"]["name"]

Bon, j'espere que mes explications ont été clair ;)

++

Une bonne programmation c'est avant tout une bonne analyse. :)
Messages postés
44
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2004

Euh.. pour ne pas reposter un forum, je vais le posté ici...
J'ai un tit programme pour uploader des fichiers images sur mon serveur via une page, et je voudrais connaitre le moyen de renommé cette image un fois transféré ?

Source provenant de ce site modifié un petit peu :


$err = "";

if ($image){
    $largeur_max = 700;
    $hauteur_max = 1000;
    $poids_max = 76800;
    $poids_max_txt = round($poids_max / 1024)." ko";
    if (is_uploaded_file($image))
    {
        if ($infos_img = getimagesize($image))
        {
            if ($infos_img[0] > $largeur_max)
                $err .= "L'image a une largeur de ".$infos_img[0]."px alors que la largeur maximale est de $largeur_max px.
";
            if ($infos_img[1] > $hauteur_max)
                $err .= "L'image a une hauteur de ".$infos_img[1]."px alors que la hauteur maximale est de $hauteur_max px.
";
            if ($image_size > $poids_max)
                $err .= "L'image a un poids trop lourd. Il faut qu'elle ne dépace $poids_max_txt.
";
            if ($infos_img[2] == 5 || $infos_img[2] == 6)
                $err .= "Les formats PSD et BMP ne sont pas acceptés. Il faut un format GIF, JPG, ou PNG.
";
            if (file_exists("".$image_name))
                $err .= "Il y a déjà une image avec ce nom dans notre base de données ! Merci de la renommé.
";
            if ($err == "")
            {
                copy($image,"".$image_name);
                $err2 = "L'image a bien été chargée
$image_name";         
            }
        }
        else
            $err .= "Veuillez séléctionner une image en .JPG, .GIF ou .PNG !
";
    }
    else
        $err .= "Aucunes images n'a été détectées.
";

  if ($err != "")
{
    echo $err."
";
    echo "Retour";
    exit();
}



Merci à vous
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

Salut,

Cela se passe dans la fonction copy, par exemple en prenant l'exemple d'upload d'image:
...
$infos_img = getimagesize($image)
switch( $infos_img[2] )
{
case 1: $name_image = "logo.gif"; break;
case 2: $name_image = "logo.jpg"; break;
case 3: $name_image = "logo.png"; break;
case 4: $name_image = "logo.swf"; break;
default: echo"erreur, le fichier n'est pas une image ou n'est pas reconnue par getimagesize()"; exit(0);
};

// Copy l'image dans le repertoire de son choix
if( !copy( $image, "".$name_image ) ) echo "erreur de copie";
...


Dans ce cas la si mon image d'origine se nommait bidule.jpg, le fichier copié se nommera logo.jpg. C'est un exemple pourri (lol) mais bon c'est juste pour comprendre ;)

Une bonne programmation c'est avant tout une bonne analyse. :)
Messages postés
37
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
29 janvier 2006

merci beaucoup ça fonctionne à merveille.
est- ce que tu n'aurais pas le même systéme mais sans utiliser de bouton du genre:

qan c abrupt loulou met a pik
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

Je pense pas que l'upload fonctionnera en passant par le javascript, puisqu'il faut impérativement passé par le formulaire et le fichier dans action car l'upload se fait grace à enctype="multipart/form-data".

Une bonne programmation c'est avant tout une bonne analyse. :)
Messages postés
37
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
29 janvier 2006

ok.
merci bien

qan c abrupt loulou met a pik