Upload de fichiers

Résolu
loutwice Messages postés 37 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 29 janvier 2006 - 1 sept. 2004 à 02:35
loutwice Messages postés 37 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 29 janvier 2006 - 1 sept. 2004 à 05:04
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

korrox Messages postés 60 Date d'inscription mercredi 9 juillet 2003 Statut Membre Dernière intervention 3 septembre 2004
1 sept. 2004 à 03:42
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. :)
3
AleXsItsMe Messages postés 44 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 26 octobre 2004
1 sept. 2004 à 04:12
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
3
korrox Messages postés 60 Date d'inscription mercredi 9 juillet 2003 Statut Membre Dernière intervention 3 septembre 2004
1 sept. 2004 à 04:33
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. :)
3
loutwice Messages postés 37 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 29 janvier 2006
1 sept. 2004 à 04:43
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
3

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

Posez votre question
korrox Messages postés 60 Date d'inscription mercredi 9 juillet 2003 Statut Membre Dernière intervention 3 septembre 2004
1 sept. 2004 à 04:58
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. :)
3
loutwice Messages postés 37 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 29 janvier 2006
1 sept. 2004 à 05:04
ok.
merci bien

qan c abrupt loulou met a pik
3
Rejoignez-nous