Upload d'un fichier utilisant C# et ASP.NET ?

Signaler
Messages postés
26
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2009
-
 sgtHerbert -
Bonjours a tous ,
j'ai vu dans le forum q'il ya de source pour cela mais avec VB.net et ASP.net ,

quel est le code C# et ASP .net   pour uploader un fichier ?
  et si quelqu 'un peut me donner le tuto ou le lien pour ça
j'ai besoin votre aide et Merci pour votre réponse

5 réponses

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

Avec un fileupload ?
Dans ce cas, tu peux faire (le code est minimal, avec juste un label pour indiquer qu'un fichier a été sélectionné dans le fileupload)  :

protected void Button1_Click(object sender, EventArgs e)
    {
        String path = Server.MapPath("fichiers/Anaxagoras/");
        if (FileUpload1.FileName == "")
        {
            Labelc1.Text = "Pas de fichier sélectionné";
        }
        else
        {
            FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
            Labelc1.Text = "Le fichier a été chargé.";
        }      
          
    }

GGtry
Messages postés
26
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2009

Merci bien ggtry , je v essayer avec ce code
Merci
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
ggtry, au niveau secu ton code n'est pas bon du tout !!! qu'est-ce qui se passe si j'upload un fichier .aspx ? Ton code donne tout simplement accés à ton serveur !

J'ai donné quelques conseils pour la configuration de l'upload ici : http://blogs.developpeur.org/cyril/archive/2008/10/14/iis7-configuration-des-handlers-pour-l-upload-de-fichier-interdire-certains-fichiers-de-s-ex-cuter-acc-der-des-fichiers-cs-aspx.aspx

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

Oui, tu as parfaitement raison : c'est (entre autres) pour cela que j'ai dit que c'était un code "minimal".
L'utiliser directement et sans plus ne peut donc être conseillé. Il faut au moins faire un test sur l'extensionfile.
(Et en passant, mon test sur "" sur le filename est idiot : il vaut mieux utiliser .hasfile).
Alors, un truc moins dangereux :

 if (FileUpload1.HasFile)
        {
            string ext1 = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
            string[] ext2 = new string[] { ".dox", ".docx", ".rtf", ".odt" };
            for(int i=0;i<ext2.Length-1;i++)
            {
                if (ext1==ext2[i])
                {
                    t=true;
                }
            }
        }
        else
        {
            Labelc1.Text = "Pas de fichier";
        }


        if (t)
        {
            FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
            Labelc1.Text = "Le fichier a été chargé.";
        }
        else
        {
            Labelc1.Text = "Les extensions doivent être de type .doc, .docx, .rtf ou .odt";  
        }

   

GGtry
Je pense qu'il est possible de simplifier ce code en utilisant contain de la classe Array au lieu de parcourir le tableau des extensions. Mais merci pour ce morceau de code qui m'a bien fait avancé ^^
moi je veut avec vb.net