|
|
|
Ответы
1. Передать post-переменную типа file из парсера в другой CGI, боюсь, не удастся. Думаю, что надо реализовать так: передать данные формы этому CGI, а он вернет редирект на страницу, которая обработает его код ответа.
2. Методом post на сервер приходят MIME-данные. Пример формы аплоада:<form enctype="multipart/form-data" action="/cgi-bin/upload.pl" method="post">
<input type="file" name="file"/><br />
<input name="text" /><br />
<input type="submit" name="do" value="do" />
</form> Пример upload.pl:#!/usr/bin/perl
print "Content-type: text/plain\n\n";
open (PF, "+>post.data");
read (STDIN, $postdata, $ENV{'CONTENT_LENGTH'});
print PF $postdata;
close (PF);А вот что падает в файл post.data:-----------------------------104982155732825
Content-Disposition: form-data; name="file"; filename="cp.html"
Content-Type: text/html
^path[]
^exec[/cgi-bin/printenv]
-----------------------------104982155732825
Content-Disposition: form-data; name="text"
bbbsss
-----------------------------104982155732825
Content-Disposition: form-data; name="do"
do
-----------------------------104982155732825-- Все, что теперь остается - проанилизировать в CGIшнике переменную $postdata на предмет part-delimiter (первая строка), найти нужное поле по сигнатуре 'Content-Disposition: form-data; name="file"; filename="cp.html"' (подставив нужное имя инпута) и сохранить в файл все после "Content-Type: text/html\n\n" до part-delimiter...
Надеюсь, обяснил понятно ;-) Что не понятно - спрашивай.
|