Alex Tutubalin wrote:
> а) скрипты, принимающие file upload, размещаются в отдельной директории, в
> .htaccess (или ?Directory?) пишется CharsetTurnOff On
> б) если принимающий скрипт должен что-то ответить клиенту, то он этого не
> делает сам (помним, перекодировки выключены!), а делает Redirect на
> скрипт/html, расположеный в директории, для которой перекодировки не выключены.
В том единственном (пока) месте, где я использую File Upload, данный метод
неприменим. :( Более того, нельзя делать, чтобы не перекодировались _все_ POST.
Но приемлимо (хотя и не совсем) просто не трогать File Upload.
Правильно ли я понимаю, что для этого достаточно
> void set_charset(charset_table_t *charset, request_rec *r,
> charset_dir_t *dirconf,int can_cache)
> {
> int i;
> char *agent;
> array_header *client_headers=r->headers_in;
> table_entry *el = (table_entry *)r->headers_in->elts;
> recode_table_t *rtbl = get_recode_table(r,charset,dirconf);
где-нибудь здесь вставить проверку, что в client_headers заголовок Content-type
имеет значениеmultipart/form data, и по этому торжественному случаю сделать
действие аналогичное нижеидущему?
if(!rtbl)
{
log_reason("Cannot find recode table",r->uri,r);
return;
}
> Естественно, такой механизм происходит от моей лени :), но я честное слово не
> знаю - нужно ли перекодировать (например) file upload с
> Content-Type: text/plain. А делать для этого еще один ключик - ломает.
Мне кажется, что можно перекодировать все элементы Mutlipart/form-data,
кроме тех, у которых есть filename. IMHO это вполне логично и единственно верно.
WBR, MoKo
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.