Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[SockeT][Avancé] Transferer des fichier vers un serveur php
Auteur Message
Répondre en citant
Message [SockeT][Avancé] Transferer des fichier vers un serveur php 
Bonjour,

cela va être le tutoriel pour transférer des fichiers via SockeT vers un serveur php.
Il est fortement recommandé d'avoir suivi le tutoriel de base qui est destiné aux débutants : http://batch.xoo.it/t5307-SockeT-D-butant-Les-bases-de-SockeT.htm, au moins la première partie pour réussir à obtenir SockeT.

- I - Configuration de SockeT
Cette partie va être très brève car quasiment tout est expliqué dans le tutoriel de base.

Sinon, comme on ne va utiliser que le client et que le PHP (http) est en TCP, le script build_client_min.bat est suffisant.
Sinon, vous pouviez utiliser :
- les versions full et full_min (voir le tuto de base)
- la version client normale
Citation:
Laquelle choisir ?
Et bien, celle que vous voulez, personnellement, je prendrais la version client_min car c'est la plus compacte et arrive tout de même à faire ce travail.



- II - Le transfert du fichier & sa réception par le PHP
Le php fonctionne par le http qui est lui-même basé sur le TCP (port 80).

Donc il nous faudrait un client sur le port 80.
ça donnerais ça :
Code:
@Echo off
set php_host=tonserveur.com
set filename=test.txt
REM récupère l'IP du serveur via ping
for /f "delims=[] tokens=2" %%A in ('ping -n 1 %php_host%') do set php_ip=%%A


REM Port 80 = Port des serveurs web ; waitdelay à 50 pour avoir une vitesse suffisante
start /b SockeT.exe -m:client -host:%php_ip% -port:80 -protocol:tcp -waitdelay:50
(Remplacez tonserver.com par le nom d'hôte de votre serveur (peut être une IP ou une URL))

Ensuite, il va falloir envoyer une requête http, pour ça, je vais me baser sur cet ancien code : http://batch.xoo.it/t5035-SockeT-Connection-http-sur-serveur-web.htm

avec une petite partie de mon serveur web (Httµbat), ça donne ça Very Happy (le code est commenté) :
Code:
@Echo off
set php_host=tonserveur.com
set php_reciever=send.php
set filename=test.txt
REM récupère l'IP du serveur via ping
for /f "delims=[] tokens=2" %%A in ('ping -n 1 %php_host%') do set php_ip=%%A

REM Vous pouviez ajouter des paramètres aprés %php_reciever% pour par exmple l'authentification ou le nom de fichier pour le serveur web
(echo POST /%php_reciever% HTTP/1.1
echo Host: %php_host%
for /f %%A in ("%filename%") do echo Content-Length: %%~zA
echo.
REM On insère le contenu du fichier dans le corps
type %filename%
)>IN_
>NUL move /Y IN_ IN

REM Port 80 = Port des serveurs web ; waitdelay à 50 pour avoir une réactivité suffisante
SockeT.exe -m:client -host:%php_ip% -port:80 -protocol:tcp -waitdelay:50
pause


Et pour le .php du serveur, ça donne ça :
Code:
[lang=php]<?php
   $fichier = file_get_contents("php://input");
   file_put_contents("out.txt", $fichier);
?>


Voila, c'est très basique mais c'est pour que vous puissiez l'adapter.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch