Page 5 sur 7

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 13:29
par lepiaf31
Oui ensuite ecris un ptit mot dans le txt (il ne faut pas qu'il soit vide).
Ensuite utilise ce code:

Code : Tout sélectionner

InitNetwork()
 openconsole()
  HTTP_createQuery(@test, #HTTP_METHOD_FILE, "/test.php", "www.thyphoon.com", 80, "proxypacsc.entreprise.fr")
  HTTP_addQueryHeader(@test, "User-Agent", "PB")
  HTTP_addFile(@test, "datafile", "envoi.txt")
  conn = HTTP_sendQuery(@test)

  string.s = Space(2048)
  time = ElapsedMilliseconds()
  Repeat
    If NetworkClientEvent(conn) = #PB_NetworkEvent_Data
      readed = ReceiveNetworkData(conn, @string, 2048)
      Print(Left(string, readed))
      time = ElapsedMilliseconds()
    EndIf
    Delay(100)
  Until ElapsedMilliseconds() - time >= 3000
  Input()
Et dis nous ce qui s'affiche =)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 13:41
par Thyphoon
Kwai chang caine a écrit : Par contre j'suis désolé d'etre un gros lourd, mais j'ai toujours pas trouvé ou etait le fichier dans ce fameux TMP du serveur

J'ai créé a la racine de ton code un fichier "envoi.txt" ou j'ai mis du texte dedans, je ne sais pas si c'etait ce qu'il fallait faire.
Et apres, je comprend plus rien :oops:
je vais te faire un code php pour récupérer le fichier une fois envoyé ! :mrgreen:

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 13:57
par Kwai chang caine
Et dis nous ce qui s'affiche =)
J'baigne en pleine choucroute :oops:

J'ai remplacé ta partie Main() par le code que tu viens de me donner et j'ai une erreur mémoire a la ligne

Code : Tout sélectionner

AddElement(*query\headers())
:(
je vais te faire un code php pour récupérer le fichier une fois envoyé !
Merci beaucoup 8)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:07
par Kwai chang caine
J'ai trouvé c'etait la structure "test.HTTP_Query" qui n'etait pas déclaré :D

Donc ça me retourne ça

Code : Tout sélectionner

HTTP/1.1 200 OK
Date: Tue, 28 Jun 2011 13:05:48 GMT
Server: Apache
Content-Type: text/html
Connection: close
Age: 0

POST REQUEST Ok/___FILE /array(1) {
  ["datafile"]=>
  array(5) {
    ["name"]=>
    string(9) "envoi.txt"
    ["type"]=>
    string(24) "application/octet-stream"
    ["tmp_name"]=>
    string(14) "/tmp/phph1xUMO"
    ["error"]=>
    int(0)
    ["size"]=>
    int(1385)
  }
}
<form action="test.php"
enctype="multipart/form-data" method="post">
<p>
Type some text (if you like):<br>
<input type="text" name="textline" size="30">
</p>
<p>
Please specify a file, or a set of files:<br>
<input type="file" name="datafile" size="40">
</p>
<div>
<input type="submit" value="Send">
</div>
</form>

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:09
par lepiaf31
He bah voilà, le fichier a bien été envoyé =)
Et il se trouve dans le dossier /tmp/phph1xUMO sur le serveur (temporairement, il est supprimé de suite s'il n'est pas traité).
Voilà =)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:17
par Kwai chang caine
Et bah c'est la que je comprend pas....
Sur le serveur de TYPHOON que je puisse pas le trouver, c'est normal :roll:

Mais quand je le fais sur le miens, pourquoi je ne le vois pas 8O
J'ai meme créé un dossier "tmp" a la racine du serveur, la ou est posé le "test.php" et rien de rien
Il est ou ce fichu dossier "tmp" physiquement sur mon serveur
J'ai cherché aussi dans le "c:\windows\temp" et "quedal" :?

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:25
par lepiaf31
Bien sûr que c'est normal ^^
En fait il faut que le fichier soit impérativement traité après l'envoi (il faut un script en php qui s'occupe de verifier le fichier et de le déplacer dans le dossier voulu). Thyphoon n'a pas écrit ce script donc immédiatement après l'envoi, le serveur (Apache) va supprimer ce fichier puisqu'il est censé être temporaire. C'est à Thyphoon de s'occuper à coder en php un système pour conserver ce fichier, mais dans notre cas, le but était simplement d'effectuer un upload de fichier (en utilisant le protocole HTTP) et pas de le conserver =)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:30
par Kwai chang caine
Aaaaaahhhhhh !!! d'accord !!!!!!!! :D

Excuse moi, j'avais pas compris :oops:
Je pensais que même temporaire on le voyait apparaitre dans le dossier :roll:
Et j'avais collé mon groin sur l'ecran du serveur et tout vide qu'il etait le dossier "c:\windows\temp" 8O

Excuse moi encore, je viens de faire mes premiers pas dans le dur monde du WEB et des ses X langages, et depuis que j'ai passé 10 jours de cours, j'suis encore plus perdu qu'avant :oops:
A coté des langages WEB et du comportement de PHP et d'APACHE, PB c'est un hochet pour poupon :(

J'attend avec impatience ce code alors :D
Encore merci mille fois de ton aide 8)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:33
par lepiaf31
C'est une question d'habitude ;)
Moi j'ai commencé par le PHP donc forcement je commence à avoir l'habitude. Si j'ai le temps, j'ecrirai un petit script en PHP pour que le serveur conserve les fichiers =)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:47
par lepiaf31
Bon voilà j'ai mis un petit script sur mon site donc voici le code source php:

Code : Tout sélectionner

<?php
if(isset($_FILES['txt'])){ 
	if($_FILES['txt']['error'] == 0){ //pas d'erreur
		if(substr($_FILES['txt']['name'], -4) == '.txt' && $_FILES['txt']['size'] < 300){ //on n'accepte que les fichiers ayant l'extentation txt et qui sont inferieur à 300 octets
			$name = 'tmp/'.$_FILES['txt']['name'].'_'.microtime().'.txt';
			move_uploaded_file($_FILES['txt']['tmp_name'], $name); //on déplace le fichier
			echo 'Le fichier a été déplacé dans le dossier '.$name;
		}
	}
}
?>
Et voici comment envoyer un fichier (utiliser les meme fonction et structure que mon dernier post):

Code : Tout sélectionner

Procedure main()
  Protected test.HTTP_Query, string.s, readed.i, conn.i, time.i
  OpenConsole()
  InitNetwork()
  
  HTTP_createQuery(@test, #HTTP_METHOD_FILE, "/test.php", "lp.creation.free.fr")
  HTTP_addQueryHeader(@test, "User-Agent", "PB")
  HTTP_addFile(@test, "txt", "envoi.txt")
  conn = HTTP_sendQuery(@test)
  
  string.s = Space(2048)
  time = ElapsedMilliseconds()
  Repeat
    If NetworkClientEvent(conn) = #PB_NetworkEvent_Data
      readed = ReceiveNetworkData(conn, @string, 2048)
      Print(Left(string, readed))
      time = ElapsedMilliseconds()
    EndIf
    Delay(100)
  Until ElapsedMilliseconds() - time >= 3000
  Input()
EndProcedure

main()
Et voilà, RDV ici pour voir vos fichier envoyés: http://lp.creation.free.fr/tmp/

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:54
par Kwai chang caine
T'es trop un ange 8) 8)
Je vais essayer de ce pas
C'est une question d'habitude
Moi j'ai commencé par le PHP donc forcement je commence à avoir l'habitude.
Alors la....je t'admire 8O
Moi je crois que si j'avais commencé par le WEB y'a longtemps que je ne gonflerais plus personne sur les forums de programmation :(

Comme je t'ai dit, depuis la fin de mon stage, je deprime
Avant, je faisais des petites pages statiques, avec de la DIV en veux tu en voila...une pincée de CSS dernierement, et un "chouya" de PHP et j'etais le plus heureux des WebMasters :mrgreen:

J'ai eu la chance de faire cette formation, et depuis on a balayé l'ensemble de la prog WEB en 10 jours
HTML / JavaScript / Css / PHP / AJAX et on a fini avec un bouquet final de feu d'artifice avec JQuery 8O

Depuis je pleure devant mon ecran, rien qu'a l'idée qu'il va falloir m'y mettre un jour.... :(
Ils sont barjos d'avoir gluté langage, apres langage :?
C'est à se tirer les plombs, les particularités de PHP qui est aussi strict qu'un delinquant de banlieue, on peut tout lui fourrer dans la meme variable, les selectcase qui ne sortent pas automatiquement, ....enfin plein de trucs de dingues :twisted:

Et je parle pas de la gestion des erreurs....j'm'en marre encore..t'es a peu pres aidé comme un mec qui veux ouvrir sa boite en france :?
Ca marche pas....et tu te demmerdes....
Et encore y'a le plugin de FF, qui aide un peu.... :roll:

Jamais il se reunissent pour tout balancer et recréer un seul et unique langage, reunissant tout le toutim ????
Tout le monde parle du HTML5 comme revolution, mais il remplacera pas le javaScript....
Et ce JavaScript qui parfois est desactivé, ou qui en local est automatiquement bloqué.....enfin j'suis parti en pleurant :cry:

Donc tout ça pour te dire chapeau 8)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 14:58
par lepiaf31
Ouais je t'avoue que je ne suis pas fan du web non plus ^^
C'est l'anarchie, chacun y va de sa petite nouveauté sans la rendre compatible avec les autres, bref ...

Depuis que je fais des études d'informatique, je suis clairement plus attiré par de la programmation pour PC que pour le web (c'est beaucoup plus intéressant). Donc bon je laisse le web aux autres (et puis le web c'est toujours la meme chose de toutes facons ..)

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 15:11
par Kwai chang caine
Bon alors devine..........ça marche encore pas avec moi :mrgreen:
J'aurais peut etre pas du insulter le WEB avant d'essayer ton code :roll:

J'ai copié ta nouvelle procedure Main() et modifié la ligne

Code : Tout sélectionner

 HTTP_createQuery(@test, #HTTP_METHOD_FILE, "/test.php", "lp.creation.free.fr", 80, "proxypacsc.entreprise.fr")
J'ai modifié aussi le nom de mon fichier TXT, et aussi dans la ligne de code, car je suppose qu'on peut pas poser deux fichier du même nom :mrgreen:

Code : Tout sélectionner

 HTTP_addFile(@test, "txt", "envoi2.txt")
Et rien sur ton serveur :(

Code : Tout sélectionner

HTTP/1.1 307 Temporary Redirect
Location: https://authcla.entreprise.fr/?cfru=aHR0cDovL2xwLmNyZWF0aW9uLmZyZWUuZnIvdGVzd
C5waHA=
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 761

<HTML><HEAD>
<TITLE>Redirect</TITLE>
</HEAD>
<BODY>
<FONT face="Helvetica">
<center><big><strong>Acc&egrave;s Internet d&rsquo;</strong></big><BR></cente
r>
</FONT>
<blockquote>
<TABLE border=0 cellPadding=1 width="80%">
<TR><TD>
<FONT face="Helvetica">
<big>Redirect (authentication_redirect_to_virtual_host)</big>
<BR>
<BR>
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
You are being redirected to the authentication virtual host.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">

</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
<BR>
En cas de difficult&eacute;, vous pouvez contacter votre assistance habituelle.
<br>L'&eacute;quipe d'exploitation des acc&egrave;s Internet d&rsquo;
</FONT>
</TD></TR>
</TABLE>
</blockquote>
</BODY></HTML>

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 15:16
par lepiaf31
C'est une erreur dû au proxy que tu utilises, je ne connais malheureusement pas la configuration de ton proxy et je ne peux donc pas vraiment t'aider :/
Tu ne peux pas tester sans passer par le proxy j'imagine ? ^^

EDIT: c'est peut-etre une limitation dû au proxy, c'est possible ?

Re: Envoi de fichier par requête Http Post

Publié : mar. 28/juin/2011 15:29
par Kwai chang caine
Tu ne peux pas tester sans passer par le proxy j'imagine ? ^^
Bah non....cette saloperie de proxy il est la rien que pour nous embeter :?

Je voudrais bien essayer sur mon serveur, car la je suis en interne et pas de "PROPRO"
Ce que j'ai pas compris c'est comment tu as installé ton script PHP
J'ai essayé de me la jouer, en le copiant dans le test.php, mais evidemment....quand on sait pas fumer..faut pas jouer avec les allumettes :oops: