[R] Envoi de fichier par POST

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Artemis
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 03 juil. 2008 19:31
Status : Hors ligne

[R] Envoi de fichier par POST

#1

Message par Artemis »

Bonjour. Je cherche à envoyer un fichier par POST sur une page PHP (ex : Imageshack, etc). Après mes recherches, je n'ai rien trouvé de définitif. :)

Merci d'avance, Artemis ;)
Artemis
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 03 juil. 2008 19:31
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#2

Message par Artemis »

Up :wink: . Il y a bien une solution non ? :|
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#3

Message par jbnh »

Je ne pense pas qu'il soit possible sauf si on a le code du php, hors sur imageshack par exemple, quelque soit le fichier que tu décides d'envoyer, le lien sera du genre : imageshack.us/load.php et non un truc du genre imageshack.us/load.php?objet=coucou.png
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Artemis
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 03 juil. 2008 19:31
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#4

Message par Artemis »

On ne peut donc pas émuler la balise "file" avec de l'AutoIt ? Par exemple en envoyant le contenu du fichier ou autre chose ? :?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#5

Message par orax »

J'avais posé une question sur le sujet : http://www.autoitscript.fr/forum/viewto ... f=3&t=2614 mais vu que je n'ai pas réussi à faire ce que je voulais, j'ai décidé de créer manuellement la requête et de l'envoyer avec TcpSend(). C'est vraiment une solution de dernier recours.
Si par contre vous comptez envoyer du texte (des données non binaires), il y a une UDF qui existe que j'avais vu sur le forum de autoscript.com
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Artemis
Niveau 3
Niveau 3
Messages : 49
Enregistré le : jeu. 03 juil. 2008 19:31
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#6

Message par Artemis »

Merci de votre réponse. Pouvez-vous me détailler votre code afin que je puisse voir si je peux l'utiliser ?

Merci, Artemis ;)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#7

Message par orax »

Ca envoie un fichier PNG sur un site d'hébergement d'images via la méthode POST.

Si je me souviens bien c'est la première partie du code (avant les ;~ * * * * * * *...) du message http://www.autoitscript.fr/forum/viewto ... 600#p15600 qui est fonctionnelle. Enfin... c'est fonctionnel à 90%.
D'ailleurs, dans la version du code que j'utilise j'ai changé la version de HTTP 1.1 en 1.0 pour ne pas avoir à gérer les données tronquées... Et puis, le "boundary" devrait être généré car il faut s'assurer que ces données ne soient pas présentes dans le fichier à envoyer. Il y a aussi "Content-Type" qui est mis manuellement. Bref, c'est quand même fonctionnel mais bâclé. Par contre l'exemple en VBS que j'ai mis dans le dernier message fonctionne parfaitement.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#8

Message par orax »

GaRydelaMer vient d'apporter une solution au problème.

http://www.autoitscript.fr/forum/viewto ... f=6&t=2747
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Envoi de fichier par POST

#9

Message par GaRydelaMer »

Bonsoir

mon code sert à poster un formulaire complet sans créer ou gérer le code HTML nécessaire.

on utilise la DLL de Windows winhttp.dll pour faire l'envoie.
- J'ai pas mis de gestion d'erreur.
- Ni mis en place le suivit du Post (la progression)

Cependant pour le faire fonctionner sur un site il te faut lire le code source de la page qui post le fichier. Récupérer les noms des champs les remplir avec ton code. Ensuite tu affiche le code HTML renvoyer par le serveur (surement un script cgi: PHP/Perl/Asp).

Dans mon exemple de navigateur, lien au dessus, tu as les exemples pour trouver les champs du formulaire.

Avec ca pour t'aider.

Code : Tout sélectionner

    Local $oForms = _IEFormGetCollection($oIE)
    For $oForm In $oForms
        Local $Items = _IEFormElementGetCollection($oForm)
        ConsoleWrite(@LF & "++Form: " & $oForm.name & @LF)
        For $Item In $Items
            ConsoleWrite(@TAB & "<" & $Item.type & "> Name: " & $Item.name)
            If $Item.type = "file" Then
                ConsoleWrite(" file: désactivé non affiché " & $Item.value & @LF)
            ElseIf $Item.type = "textarea" Then
                ConsoleWrite(" Value: textarea non affiché" & @LF)
            Else
                ConsoleWrite(" Value=" & $Item.value & @LF)
            EndIf
        Next
        ConsoleWrite("---------------------------------------------------------" & @LF)
    Next
 
Répondre