parser

/faq/faq
/authors/авторы
/docs/документация

/powered_by_parser/в действии
/feedback/куда говорить
/jargon/жаргон

/download/скачать

/examples/примеры
/forum/форум



Поиск по форуму

По умолчанию ключевое слово ищется только в заголовке сообщения.

Ключевое слово:

Фильтровать по автору:



Ответы

Luzhnikovskiy | tom@ofm.ru 09.02.2002 15:05

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...

Надеюсь, обяснил понятно ;-) Что не понятно - спрашивай.

<<  Вернуться к списку сообщений


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева