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

Web & réseau Delphi Discussion :

Uploader un fichier


Sujet :

Web & réseau Delphi

  1. #1
    Membre confirmé Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Par défaut Uploader un fichier
    Bonjour,
    je suis en train d'essayer (je débute tout juste sur delphi) de faire un client http qui va uploader un fichier à l'aide du composant Indy. Je comprend pas pour quoi sa marché, ça me lève une exception EAccessViolator
    Voila ma source
    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
    program Project2;
     
    {$APPTYPE CONSOLE}
     
    uses
      SysUtils,
      IdMultipartFormData,
      IdHTTP;
     
    var
      MultiPartFormDataStream: TIdMultiPartFormDataStream;
      monhttp: TIdcustomHTTP;
     
    begin
        monhttp.Create(nil);
        MultiPartFormDataStream := TIdMultiPartFormDataStream.Create;
        try
          MultiPartFormDataStream.AddFile('userfile', 'C:\Sites web\CubeSNMP\grid.css' , 'multipart/form-data');
          MultiPartFormDataStream.Position := 0;
          //Poste !
          monhttp.Post('http://localhost/testFichier/upload.aspx', MultiPartFormDataStream);
        finally
          MultiPartFormDataStream.Free;
      end;
    end.

  2. #2
    rbh
    rbh est déconnecté
    Membre chevronné Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Par défaut
    Salut
    il faut que tu remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monhttp := TIdcustomHTTP.Create(nil);
    pour creer ton objet.

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    lol ! L'erreur classique

    Ca m'arrive encore au moins 20 fois par jours

  4. #4
    rbh
    rbh est déconnecté
    Membre chevronné Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Par défaut
    Citation Envoyé par Clorish Voir le message
    lol ! L'erreur classique

    Ca m'arrive encore au moins 20 fois par jours
    Pas vingt fois par jour mais ça m'arrive au moins une fois par mois.
    Ce qui varie c'est le temps de détection de ce bug :
    entre 9h et 10h30 : ~1h
    entre 10h30 et 12h: ~5min
    entre 12h et 17h : ~3min
    après 17h : + d'une heure

  5. #5
    Membre confirmé Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Par défaut
    J'ai trop honte
    Je cherche depuis ce matin... et la j'ai pas l'excuse du langage, c'est comme sa partout (ou presque)... Merci beaucoup en tout cas!
    Citation Envoyé par rbh Voir le message
    entre 12h et 17h : ~3min
    après 17h : + d'une heure
    J'ai eu de la chance de ne pas poster 20 minutes plus tard...

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Braillane Voir le message
    J'ai trop honte
    Je cherche depuis ce matin... et la j'ai pas l'excuse du langage, c'est comme sa partout (ou presque)...
    Bhoa .. moi a force de reflechir sur des truc hard .... je fini par me vautrer lamantablement sur des trucs basique
    Apres quand t'es habitue a debuger des trucs bizarre .... tu check la pile d'execution, tu trace ton application, etc .... et en fait t'as simplement mis un "W" majuscule a "while" dans un language C-Like

    .... Quand c'est pas un "=" dans un test "if"

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 097
    Par défaut
    Ah, l'erreur classique, quoi je ne l'ai jamais faite, de mémoire, ayant commencé le Delphi et le C, en même temps, l'un objet et l'autre pas, je ne mélangeais pas trop ... mais en ce moment, je fais un peu de php, même si je suis rigoureux (ouais tout avec Ultra Edit, faut que je passe à PHP Edit, il est fait en Delphi ce petit), quelques erreurs de case sensitive et le === (tout est variant dans ce langage ...), ou l'oubli de ce putain de merde de $ ...

    Moi,mon erreur récurente pour la perte de temps notoire, c'est le inherited dans mon Destroy override (dans le create je ne l'oublie pas), ça aussi, cela peut prendre beaucoup de temps pour retrouver sa connerie ... par contre moi, c'est l'inverse, je ne suis pas du matin
    entre 9h et 12h30 : ~1h
    entre 12h30 et 13h30 : c'est la pause déjeuner, un Troll ça mange bcp !
    entre 13h30 et 16h: ~1h (la sieste)
    entre 16h et 20h : ~3min

    Alors Braillane, ne t'inquiète pas, c'est erreur de base, mais quand j'y pense, dans les autre langages genre java/c/..., il y a le New, cela rend l'oublie plus difficile alors qu'en Delphi, le compilateur ne fait même pas d'erreur, car en fait ce que tu as écrit fonctionne dans ce cas, non, à confirmer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonObjetModele := TBidule.Create(nil);
    MonObjetTruc :=  MonObjetModele.create();
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonObjetModele := TBidule.Create(nil);
    MonObjetTruc :=  MonObjetModele.create();
    Il semblerais que ca marche .... mais pas avec les composants.
    On se choppe une erreur de creation : "Un compo nomé XXX existe deja"

    Sinon moi ce qui me perturbe le plus avec les nouveaux langages c'ets le Garbage collector ....
    ché pas ... mais ne plus liberer mes objets .... ca me donne l'impression de plus rien controler et de faire nimport nawak .....

  9. #9
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 097
    Par défaut
    Idem, cela me fruste, en C# tu peux tout de même faire des Dispose (logique avec le new) et implémenter un Destructreur "function ~NomDeClasse ..."

    Je pense que pour les TPersistent, l'initialisation via un Create sur Instance doit recopier les propriétés publiés tel que le Name d'un TComponent ... donc utiliser CreateNew à la place de Create ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Je pense que pour les TPersistent, l'initialisation via un Create sur Instance doit recopier les propriétés publiés tel que le Name d'un TComponent ... donc utiliser CreateNew à la place de Create ...
    Fort possible vu l'erreur ... c'est d'ailleur ce qui m'a poussé a faire quelques tests a l'epoque.
    Je trouvais logique que lancer le create depuis une instance ferais uen copie de l'instance ...

    Mais je sais par test que ce n'ets pas totalement exact : Certaines variable n'etais pas copiée ... maintenant a savoir si seul les published sonc cree .... a verifier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. Upload de fichier par XMLHTTP
    Par Immobilis dans le forum ASP
    Réponses: 6
    Dernier message: 21/01/2005, 17h02
  3. upload de fichier
    Par 120 dans le forum ASP
    Réponses: 16
    Dernier message: 21/06/2004, 12h07
  4. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55
  5. Upload de fichiers
    Par GDVL dans le forum ASP
    Réponses: 4
    Dernier message: 03/06/2004, 12h44

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