[PHP]Passage de fichier en paramétres

Passage de fichier en paramétres [PHP] - Programmation

Marsh Posté le 27-06-2001 à 11:45:19    

Pour l'upload on utilise d'habitude:
<form method="post" name="up" enctype="multipart/form-data" action="uploadvf.php3">
  Votre wu :  
  <INPUT TYPE="file" NAME="userfile">
  <BR>
  <INPUT TYPE="submit" VALUE="envoyer">
</p>
</form>
 
Mais je veux le passer en paramétres style uploadvf.php3?userfile=jesaispas...
Mais je sais pas quoi mettre a la place de jesaispas
?


---------------
"Si c'est les meilleurs qui partent les premiers, que penser des éjaculateurs précoces" Desproges
Reply

Marsh Posté le 27-06-2001 à 11:45:19   

Reply

Marsh Posté le 27-06-2001 à 12:03:31    

1- Pour savoir ce que contient userfile, t'as qu'à faire un upload normal, et dans uploadvf.php3 tu affiche $userfile !
 
2- Mais, faut savoir ce que tu veux. Si tu veut recevoir le fichier, il te faut absolument un INPUT TYPE=file ! C'est le navigateur qui envoie le fichier vers le serveur quand il rencontre un INPUT TYPE=file. C'est pas le serveur qui va le chercher sur le PC du client avec son nom ?
 
3-si tu fait uploadvf.php3?userfile=c:\autoexec.bat, tout ce que uploadvf.php3 va recevoir, c'est une variable $userfile qui contiendra une chaîne "c:\autoexec.bat" !
 
4-SINON, pour un upload en PHP, il manque le champ MAX_FILE_SIZE dans le formulaire :

Code :
  1. <FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
  2.    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
  3.    Send this file: <INPUT NAME="userfile" TYPE="file">
  4.    <INPUT TYPE="submit" VALUE="Send File">
  5. </FORM>


 
DOC : http://php.net/manual/en/features.file-upload.php
ou : http://php.net/manual/fr/features.file-upload.php


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 27-06-2001 à 12:11:00    

Pour max_file_size je connais (mais ca peut marcher sans)
Je sais que c le navigateur qu'ill'envi mais à mon avis en encodant le fichier à la maniére du navigateur on peut l'envoyer en paramétres, mais la question est comment l'encoder avec vc++6 par exemple ?


---------------
"Si c'est les meilleurs qui partent les premiers, que penser des éjaculateurs précoces" Desproges
Reply

Marsh Posté le 27-06-2001 à 12:43:39    

OK, OK !
 
Une piste là : http://www.isi.edu/in-notes/rfc1867.txt


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 27-06-2001 à 13:30:56    

tu veux passer le *contenu* du fichier en  URL ??
parce que les url sont limitées en taille (genre 1024 car.) et c'est pas ultime comme solution. d'autant plus que tu ne peux pas récuperer le contenu d'un fichier a partir d'un formulaire sans passer par <input type=file>

Reply

Marsh Posté le 27-06-2001 à 13:37:31    

Largo, si j'ai bien compris, Revo n'utilise pas un navigateur pour envoyer son fichier. Il écrit sa propre appli en c++.
 
Cela dit, tu as raison, en HTTP GET, l'url est limitée. Il faut utiliser POST pour envoyer un fichier...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 27-06-2001 à 18:53:52    

Je vous rassure mon fihcier est pas tres gros et fait moins d'1 koctet.
Mais je pense avoir trouver une autre solution: le prog c++ me donne le contenu du programme (qui est du text) , me le donne en parametre et je créer un fichier avec ce param.


---------------
"Si c'est les meilleurs qui partent les premiers, que penser des éjaculateurs précoces" Desproges
Reply

Marsh Posté le 27-06-2001 à 19:00:33    

j'avais galéré tel le dingue pour faire du post en php (sur nexen). en plus, pas des masses de docs là dessus :(, et un bug chelou. au cas où, voici une proc qui marche pour une requête post de nexen -> altern (c'est du php, facilement convertible en c)
 
host = une adresse ip ou un nom de domaine
postfile = le chemin sur le serveur cible (/myDir/myPost.php)
varname = le nom de la variable
vardata = son contenu
 
ça ne gère donc qu'une seule variable, je galérais déjà bien assez comme ça :D même si j'en passe plusieurs, que je récupère à coups d'explode() sur le serveur cible.
 
 

Code :
  1. //
  2. // Send a request and return its response
  3. //
  4. function HTTPRequest($targethost, $request)
  5. {
  6. global $socket;
  7. // If targethost is a dns string, get its IP  
  8. if (!ereg("[0-255].[0-255].[0-255].[0-255]", $targethost)) $address = gethostbyname ($targethost);
  9. else              $address = $targethost;
  10. // Get the port for the WWW service
  11. $service_port = getservbyname ('www', 'tcp');
  12. // Create a TCP/IP socket
  13. $socket = socket (AF_INET, SOCK_STREAM, 0);
  14. if ($socket < 0)     echo "socket() failed: reason: " . strerror ($socket) . "<br>";
  15. // Connect
  16. $result = connect ($socket, $address, $service_port);
  17. if ($result < 0)  echo "connect() failed.\nReason: ($result) " . strerror($result) . "<br>";
  18. // Send request
  19. write ($socket, $request, strlen ($request));
  20. // Grab result
  21. $outresult = "";
  22. while (read ($socket, $out, 2048) >= 0) {
  23.  $outresult .= $out;
  24. }
  25. // Close socket
  26. close ($socket);
  27. return $outresult;
  28. }
  29. //
  30. // Send an HTTP POST request
  31. //
  32. function HTTPPOST($host, $postfile, $varname, $vardata)
  33. {
  34. $boundary = "----boundary----";
  35. // Build POST data
  36. $postheader = "$boundary\r\n";
  37. $postheader .= "Content-Disposition: form-data; name=\"$varname\"\r\n\r\n";
  38. $postheader .= "$vardata\r\n\r\n";    // FIX ! there's only one return in ie data, but data gets truncated here without two.
  39. $postheader .= "$boundary\r\n\r\n";
  40. $postlen = strlen($postheader);
  41. // Build POST header
  42. $header = "POST $postfile HTTP/1.0\r\n";
  43. $header .= "Host: $host\r\n";
  44. $header .= "Content-Type: multipart/form-data; boundary=$boundary\r\n";
  45. $header .= "Content-Length: $postlen\r\n\r\n";
  46. $header .= $postheader;
  47. return HTTPRequest($host, $header);
  48. }

Reply

Marsh Posté le 27-06-2001 à 19:13:11    

C vrai que c le bordel  :D  
Mais je vais en parler a celui qui c'occupe du C++
Merci!


---------------
"Si c'est les meilleurs qui partent les premiers, que penser des éjaculateurs précoces" Desproges
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed