IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

FTP Upload taille fichier


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut FTP Upload taille fichier
    Bonjour j'ai un petit programme d'upload sur un serveur ftp et j'aimerai limiter la taille du fichier a envoyer mais je ne vois pas comment faire quelqu'un a une idée SVP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
            private void Upload(string fichier , string txbServeur,string txbUserName,string txbPassWord)
            {
     
                try
                {
                    string[] filename = fichier.Split('\\');
                    string file = filename[filename.Length - 1];
                    FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + txbServeur + "/" + file);
                    request.Method = WebRequestMethods.Ftp.UploadFile;
                    request.KeepAlive = false;
     
                    request.Credentials = new NetworkCredential(txbUserName, txbPassWord);
     
                    FileStream sourceStream = File.OpenRead(fichier);
                    byte[] fileContents = new byte[sourceStream.Length];
                    sourceStream.Read(fileContents, 0, fileContents.Length);
                    sourceStream.Close();
                    request.ContentLength = fileContents.Length;
     
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(fileContents, 0, fileContents.Length);
     
                    requestStream.Close();
     
                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
     
                    int codeMessage = Convert.ToInt32(response.StatusCode);
     
     
                    MessageBox.Show("Le fichier " + file + " a été correctement transferé", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
     
                    response.Close();
                }
                catch (Exception ex)
                {
     
                    MessageBox.Show(ex.Message + "Le fichier " + fichier+ " n'a pas été Upload", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
     
            }

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    ---> Avant d'entrer dans ta routine FTP, il faut simplement calculer la taille du fichier en question au moyen de la propriété Length. Voici un exemple avec la classe FileInfo de l'espace de noms System.IO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long fLength = new FileInfo(fichier).Length;
    ---> il te suffit d'ajouter une conditionnelle pour déterminer si la taille est supérieure à 1Mo, 3Mo, .....etc..... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Megabytes (MB)	| Bytes (B)
    3 MB	  3145728 Bytes
    4 MB	  4194304 Bytes
    5 MB	  5242880 Bytes
    6 MB	  6291456 Bytes
    ---> Si la taille est inférieure ou égale alors tu lances ta routine FTP. (Si c'est supérieur tu pourrais proposer de compresser le fichier et tester si c'est toujours trop volumineux avant l'upload).


    A+

  3. #3
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    Il faudra aussi s'assurer que la taille de fichier autorisée par le serveur est cohérente avec celle prévue par le programme d'upload.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    J'ai fait comme cela et ça fonctionne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
                    if (fileContents.Length >= 100000000  )//Si le fichier est trop volumineux 
                        {
                            MessageBox.Show("Le fichier est trop volumineux","Upload Erreur " , MessageBoxButtons.OK , MessageBoxIcon.Warning);//Alors un message d'erreur s'affiche
                        }
                    else
                    {
                    sourceStream.Read(fileContents, 0, fileContents.Length);
                    sourceStream.Close();
                    request.ContentLength = fileContents.Length;
     
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(fileContents, 0, fileContents.Length);
     
                    requestStream.Close();
     
                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
     
                    int codeMessage = Convert.ToInt32(response.StatusCode);

  5. #5
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Nickel. Well done.

    Tu peux passer le sujet en résolu stp ?

    Merci et bon codage.

Discussions similaires

  1. [FTP] upload de fichier local via ftp
    Par fraizz dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 17h32
  2. [FTP] Récupération taille fichier sur ftp
    Par Kerod dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2006, 03h18
  3. [FTP]upload de fichier
    Par ehmppowa dans le forum Entrée/Sortie
    Réponses: 12
    Dernier message: 26/01/2006, 13h57
  4. [FTP] upload de fichiers via PHP
    Par r-zo dans le forum Langage
    Réponses: 7
    Dernier message: 02/01/2006, 15h29
  5. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo