l56 Posté(e) le 27 mars 2014 Posté(e) le 27 mars 2014 Bonjour, Est-il possible, à partir d'un lisp, de savoir si un fichier est présent ou non dans un répertoire se trouvant dans l'arborescence d'un site internet. un truc du genre : (commandelisp "http://www....../...../fichier.txt")si présent = 1sinon = 0 Merci
Patrick_35 Posté(e) le 28 mars 2014 Posté(e) le 28 mars 2014 Salut Un exemple pour télécharger un fichier sur internet, donc pour tester si le fichier existe. (defun download (url file / adob fso http ok taille tbl) (setq http (vlax-create-object "MSXML2.XMLHTTP") adob (vlax-create-object "ADODB.Stream") fso (vlax-create-object "Scripting.FileSystemObject") ) (vlax-invoke-method http 'open "get" url :vlax-false) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list http 'send))) (princ (strcat "\nLe lien " url " n'est pas valide.")) (if (eq (vlax-get http 'status) 200) (if (vl-catch-all-error-p (setq taille (vl-catch-all-apply 'vlax-invoke (list http 'getResponseHeader "Content-Length")))) (princ "\nErreur de lecture sur la taille du fichier.") (if (< (atoi taille) (vlax-get (vlax-invoke fso 'getdrive (substr (vlax-invoke fso 'getabsolutepathname file) 1 1)) 'freespace)) (progn (princ "\nTéléchargement en cours.") (princ) (if (vl-catch-all-error-p (setq tbl (vl-catch-all-apply 'vlax-get-property (list http "ResponseBody")))) (princ "\nImpossible de télécharger le fichier.") (if (not (vl-catch-all-error-p (vl-catch-all-apply '(lambda() (vlax-put adob "Type" 1) (vlax-invoke adob "Open") (vlax-invoke-method adob "Write" tbl) (vlax-invoke adob "SaveToFile" file 2) ) ) ) ) (setq ok T) ) ) ) (princ "\nPlus de place sur le périphérique de destination.") ) ) (princ (strcat "\nLe lien " url " n'est pas disponible.")) ) ) (mapcar 'vlax-release-object (list http adob fso)) (terpri) ok ) Ou tu peux aussi essayer avec vla-getremotefile @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 31 mars 2014 Auteur Posté(e) le 31 mars 2014 Merci Patrick_35.Comme d'habitude, ton aide est précieuse.
capde06 Posté(e) le 31 mars 2014 Posté(e) le 31 mars 2014 quand on voit ca, on comprend pourquoi il y a une zone securisée sur la 2014en vlisp on a accès au shell a internet je n'ose pas penser a ce qu il est possible de faire en .net les hackers sur autocad , c'est pour bientôtsi ce n'est pas déjà fait Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
Patrick_35 Posté(e) le 1 avril 2014 Posté(e) le 1 avril 2014 Salut Ce que tu vois n'est qu'une traduction en lisp de ce qui peut se faire dans d'autres langages.Et ce n'est que la surface. C'est avec ce type liaisons que l'on trouve des failles de sécurité.Il faut dire que protéger des données en entreprise (même chez les éditeurs de logiciels) n'est pas une priorité et c'est bien dommage.Si quelqu'un se donne la peine de gratter un peu, il trouvera assez facilement. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
capde06 Posté(e) le 1 avril 2014 Posté(e) le 1 avril 2014 CA FAIT PEURPLU JAMAIS JE PRENDRAIS UN FICHIER COMPILéDLL OU AUTRE dans tous les cas, Patrick bravo pour cette traduction Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
Goldorak44 Posté(e) le 2 avril 2014 Posté(e) le 2 avril 2014 CA FAIT PEURPLU JAMAIS JE PRENDRAIS UN FICHIER COMPILéDLL OU AUTRE :blink: Un peu de parano ? !! PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
l56 Posté(e) le 1 mai 2014 Auteur Posté(e) le 1 mai 2014 Bonjour, La vérification du lien par (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list http 'send))) provoque la création du fichier dans un dossier du type ...\Temporary Internet Files\Content.IE5\O2VBX9YT.C'est un probleme car quand on redemande cette vérification et que le fichier n'est plus sur le FTP, il considere qu'il y est encore. J'ai l'impression qu'il verifie d'abord dans les dossiers Windows et s'il le trouve, il ne verifie pas sur le FTP. Il faudrai, avant de faire cette verification, trouver et supprimer le fichier du disque dur. Comment peut-on faire ?
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant