begin process at 2012 05 28 13:55:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Upload de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Upload de fichier

jeudi 29 mai 2008 à 16:28:21 | Upload de fichier

Gwaedion

Bonjour,

J'ai trouvé plusieurs tuto qui permettaient de faire un upload vers un serveur mais je n'arrive pas à le faire fonctionner.

voici l'érreur générée : "Object reference not set to an instance of a object."

Voici mon code :

PAGE: ASCX
[CODE]
 <input id="BtnChoixFichier" runat="server"
        type="file"
        name="BtnChoixFichier"/><br/>
 <asp:Button id="EnvoieFichier" runat="server"
             Text="Envoi du Fichier"
             OnClick="EnvoieFichier_Click"/><br/>
 <asp:Label id="AlertUpload" runat="server"/><br/>
[/CODE]

PAGE: CS
[CODE]
public void EnvoieFichier_Click(object sender, System.EventArgs e)
     {
         // Envoie le fichier choisi
         if ((BtnChoixFichier.PostedFile.ContentLength < 1))
         {
             AlertUpload.Text = "Attention : Il manque le fichier ou celui-ci est vide.";
         }
         else {
             if ((BtnChoixFichier.PostedFile.ContentLength > 100000)) {
                 AlertUpload.Text = "Attention : Taille du Fichier trop importante";
             }
             else {
                 string sRepertoireFichierServeur = "C:\\NewFolder";
                 string sNomFichierUpload = BtnChoixFichier.PostedFile.FileName.Substring(BtnChoixFichier.PostedFile.FileName.LastIndexOf(@"\") + 1);
                 try {
                     BtnChoixFichier.PostedFile.SaveAs(sRepertoireFichierServeur + sNomFichierUpload);
                     AlertUpload.Text = "Upload du fichier : " + sNomFichierUpload + " - Taille : " + BtnChoixFichier.PostedFile.ContentLength;
                 }
                 catch {
                     AlertUpload.Text = "Erreur dans l'enregistrement du Fichier : " + sNomFichierUpload;
                 }
             }
         }
     }
[/CODE]

En faite, BtnChoixFichier.PostedFile est null et je ne sais pas pourquoi...

Merci de me venir en aide
vendredi 30 mai 2008 à 11:06:11 | Re : Upload de fichier

Gwaedion

J'ai trouvé un autre exemple similaire mais qui utilise un FileUpload. Et cette fois-ci l'erreur est qu'il ne trouve pas le fichier que je veux uploader...

Quand je test : if (FileUpload1.HasFile) il me sort que HasFile renvoie null...

 Alors que j'ai bien appuyé sur parcourir et selectionné un fichier... j'ai testé une image et un fichier texte rien n'y fait.

Pourtant il m'affiche bien le chemin complet dans la textbox du FileUpload.

Je ne comprend pas ; le FileUpload est un outils déjà tout fait... il n'y a rien à faire normalement... enfin presque !

Peut-être ai-je oublié quelque chose mais je ne vois pas quoi !

J'ai regardé sur le msdn, il y a juste écrit :

 "Avant d'appeler la méthode SaveAs pour enregistrer le fichier sur le serveur, utilisez la propriété HasFile pour vérifier que le contrôle FileUpload contient un fichier. Si HasFile retourne true, appelez la méthode SaveAs. SI elle retourne false, affichez un message à l'utilisateur indiquant que le contrôle ne contient pas de fichier."

==> donc en gros quand on ajoute un fichier, le HasFile revoie true... eh bah non !

voici mon code :

PAGE: ASCX

<asp:FileUpload ID="FileUpload1" runat="server"/><br />
<br />
<asp:Button ID="Button1" runat="server" Text="Upload File" OnClick="Button1_Click" />&nbsp;<br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>

PAGE: CS

protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
            try
            {
                FileUpload1.SaveAs("C:\\...\\...\\...\\Folder\\" +
                     FileUpload1.FileName);
                Label1.Text = "File name: " +
                     FileUpload1.PostedFile.FileName + "<br>" +
                     FileUpload1.PostedFile.ContentLength + " kb<br>" +
                     "Content type: " +
                     FileUpload1.PostedFile.ContentType;
            }
            catch (Exception ex)
            {
                Label1.Text = "ERROR: " + ex.Message.ToString();
            }
        else
        {
            Label1.Text = "You have not specified a file.";
        }
    }

Si une âme charitable passe par là...
vendredi 30 mai 2008 à 11:44:22 | Re : Upload de fichier

Gwaedion

Réponse acceptée !
Bon, je continu mon monologue ; ça me sert de térapie...

Je viens de tester mon code dans un nouveau projet et... ça marche !

Mon upload se trouve dans un onglet, lui même situé dans un UC, et l'UC dans une web form !

il me reste plus qu'à essayé de bloquer l'update.

Merci de m'avoir permis de parler de mes problèmes...
samedi 31 mai 2008 à 18:09:57 | Re : Upload de fichier

coq

Administrateur CodeS-SourceS
Salut,

Heu, de rien ;-)

Sinon quelques remarques :

1) FileUpload1.SaveAs("C:\\...\\...\\...\\Folder\\" + FileUpload1.FileName);
=> pas de chemins en dur dans le code => fichier de config etc
=> si tu y tiens vraiment, préfixe la chaine de @, ça évite de doubler les caractères d'échappement : "C:\\...\\...\\...\\Folder\\" => @"C:\...\...\...\Folder\"
=> utilises Path.Combine : FileUpload1.SaveAs(Path.Combine(leCheminPasEnLiteral, FileUpload1.FileName));

2) String.Format, ça rend les choses plus lisibles (et donc maintenables avec moins de douleurs)
Label1.Text = "File name: " +
                     FileUpload1.PostedFile.FileName + "<br>" +
                     FileUpload1.PostedFile.ContentLength + " kb<br>" +
                     "Content type: " +
                     FileUpload1.PostedFile.ContentType;

=>
Label1.Text = String.Format("File name: {0}<br>{1} kb<br>Content type: {2}", 
  FileUpload1.PostedFile.FileName,
  FileUpload1.PostedFile.ContentLength,
  FileUpload1.PostedFile.ContentType
  );

Et si tu veux garder les sauts pour la lisibilité du code, tu peux, c'est permit, les chaines litérales sont concaténées à la compilation et non à l'execution (donc pas de problème de perf supplémentaire) :
Label1.Text = String.Format(
   "File name: {0}<br>"
   + "{1} kb<br>"
   + "Content type: {2}", 
  FileUpload1.PostedFile.FileName,
  FileUpload1.PostedFile.ContentLength,
  FileUpload1.PostedFile.ContentType
  );



/*
coq
MVP Visual C#
CoqBlog
*/
lundi 2 juin 2008 à 09:08:40 | Re : Upload de fichier

Gwaedion

Merci de tes remarques, je vais modifier mon code.


Cette discussion est classée dans : fichier, text, code, postedfile, btnchoixfichier


Répondre à ce message

Sujets en rapport avec ce message

generer un fichier [Mais un fichier ASP] [ par snoy_doc ] J'ai besoin de generer un fichier asp à l'aide d'un programme aspLe problème n'est pas le fichier lui même mais qu'est ce qu'il va contenir comme scri upload [ par Arkane ] J'ai construit un formulaire d'upload (avec un basile FILE !) et je voudrais dans mon traitement formulaire récupérer le nom du fichier que j'ai envoy pb de fichier de destination [ par screenup ] Bonjour, j'ai un probleme avec le code ci-dessous :CheminLocal = Server.MapPath(".\") & "\dossier" ' Dossier d'upload par defautIl s'agit d'un bout de code pour attacher un fichier avec base de données [ par bondgirl75018 ] salut , quelqu'un pourrait me dire comment insérer dans ma page internet un bouton attacher fichier et quel est le code qui va avec pour permettre de Contenu d'un fichier ZIP ??? [ par Skyride ] BonsoirJe parcours peu à peu les nouveaux sites du réseau Code Source et je suis tombé sur la fonctionnalité suivante :Comment visualiser le contenu d [.net] nom de fichier pour un download ? [ par jesusonline ] Bonjour, j'ai un petit problème: J'ai ecrit ca : Dim fichier As String = "c:/image.jpg" Dim FichierInfo As New FileInfo(fichier)<b lire et executer un fichier sql [ par jesusonline ] Bonjour, je crée un fichier .sql comme cela Public Sub EcrireRequete(ByVal sSql As String, ByVal Reset As Boolean) Directory.SetCurrentDi Telecharger un fichier text [ par adlm ] Comment faire pour que le client telecharge un fichier text directement sans que le navigateur l'ouvre automatiquement ? recupération de chaine [ par coeurdenoir ] Attention novice droit devant!Quelcun pourait il me dire comment expliquer a ce putin d'ordinateur de faire la tache suivant car vraiment j'ai beau lu recupération de données issus files.xls ou .txt [ par coeurdenoir ] Attention novice droit devant!Quelcun pourait il me dire comment expliquer a ce putin d'ordinateur de faire la tache suivant car vraiment j'ai beau lu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales