Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: File Upload



Alex Tutubalin wrote:

> Hi!
>  ?? принимающий скрипт должен что-то ответить клиенту, то он этого не делает
>  ?? сам (помним, перекодировки выключены!), а делает Redirect на скрипт/html,
>  ?? расположеный в директории, для которой перекодировки не выключены.
>
>  alr? В том единственном (пока) месте, где я использую File Upload, данный
>  alr? метод неприменим. :(
> А почему ?
>  alr? Более того, нельзя делать, чтобы не перекодировались
>  alr? _все_ POST.
> Ну, это же можно и регулировать  per-directory
>

У меня всего один скрипт, осуществляющий общение с клиентом.Все обращения имеют
вид user.cgi/something.html. Работа идет исключительно методом POST
(так как всегда передается login/password). Как бы ни один из предложенных пунктов
получается неприменим. :)

>  ?? void set_charset(charset_table_t *charset,  request_rec *r,
>
>  alr? где-нибудь здесь вставить проверку, что в client_headers заголовок
>  alr? Content-type имеет значениеmultipart/form data, и по этому торжественному
>  alr? случаю сделать действие аналогичное нижеидущему?
>
>  alr?   if(!rtbl)
>  alr?     {
>  alr?       log_reason("Cannot find recode table",r-?uri,r);
>  alr?       return;
>  alr?     }
> Ну да. Если у запроса не проинициализирован r-?codep, то никакой перекодировки
> в дальнейшем не производится.
>

Правда правильней сделать так:  r->codep=palloc(r->pool,sizeof(codepage_data_t));
r->codep->cp_otabl = rtbl->convtbl;
  r->codep->cp_itabl = rtbl->revtbl;
  r->codep->cp_name  = charset->tablename;
  r->codep->cp_lang  = charset->lang;
  r->codep->cp_flags = NEED_CHARSET;

Поставить проверку Content-type сюда, и в случае Multipart обнулить cp_itabl.
В таком случае данные от клиента перекодироваться не будут, а клиенту все дадут в
нужной кодировке.
Сделаешь? :)

>  alr? Мне кажется, что можно перекодировать все элементы Mutlipart/form-data,
>  alr? кроме тех, у которых есть filename. IMHO это вполне логично и единственно
>  alr? верно.
> Насчет единственно верно - я не уверен. При upload text/html или text/plain
> приятно его перекодировать.

Текст, передаваемый клиентом, совершенно не обязательно имеет кодировку броузера
клиента.
И еще могу предложить аналогию с e-mail: ведь никто не перекодирует аттачи к
письмам.

WBR, MoKo







Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

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