Zugluk | Salut à tous, voila j'ai un script perl très simple pour récupérer le STDIN, cela dit l'idiot me met dans les parametres dans ma variable CGI créée les "boundaries", guillemets, des carriages return etc... et je ne comprends absolument pas pourquoi. J'ai vérifié ce qu'il y avait dans le STDIN et tout me semble correct pourtant. J'utilise Nginx comme serveur web 1.5.6 (j'ai essayé avec différentes versions). =(. Une idée peut être :
Code :
- #!/sbin/perl
- use Socket;
- use EV;
- use AnyEvent;
- use AnyEvent::FCGI;
- use CGI qw/:standard -debug/;
- &main;
- sub main {
- $> = 33;
- $) = 33;
- STDOUT->autoflush(1);
- STDIN->autoflush(1);
- my $fcgi = new AnyEvent::FCGI(
- host => "127.0.0.1",
- port => "8888",
- on_request => sub {
- my $request = shift;
- AnyEvent->now_update;
- local %ENV = %{$request->params};
- local *STDIN;
- open STDIN, '<', \$request->read_stdin;
- my $q = CGI->new(\*STDIN);
- close STDIN;
- $request->print_stdout($q->header(-type => "text/html; charset=ISO-8859-1" )."Upload Done; error = ".$request->print_stderr($q->header()));
- $q->delete_all();
- $request->finish;
- }
- );
- EV::loop;
- }
- 1;
|
et voila ce que j'obtiens dans $q :
Code :
- $VAR1 = bless( {
- '.parameters' => [
- '------WebKitFormBoundaryRzFR2lUHHjnwyfZj
- Content-Disposition: form-data',
- ' name'
- ],
- 'use_tempfile' => 1,
- '.charset' => 'ISO-8859-1',
- '.fieldnames' => {},
- 'param' => {
- ' name' => [
- '"file"
- ------WebKitFormBoundaryRzFR2lUHHjnwyfZj
- Content-Disposition: form-data',
- '"test"
- upp
- ------WebKitFormBoundaryRzFR2lUHHjnwyfZj
- Content-Disposition: form-data',
- '"submit"
- Valider
- ------WebKitFormBoundaryRzFR2lUHHjnwyfZj--
- '
- ],
- '------WebKitFormBoundaryRzFR2lUHHjnwyfZj
- Content-Disposition: form-data' => [
- ''
- ]
- },
- 'escape' => 1
- }, 'CGI' );
|
Message édité par Zugluk le 18-10-2013 à 16:50:32
|