При закачивании файла на сервер, то ли апач, то ли пхп что-то меняет в его структуре (была попытка закачать файл Doc.doc) после чего он не открывается редактором!в месяц назад столкнулся с такой же проблемой... как решил вопрос не помню :( то ли поменял апач, на более старый, то ли еще что то...
скалероз понимаешь ли...
Ответ на вопрос где-то тут на Opennet - в статье Максима (URL не помню - search =))
Кратко: Скорее всего проблема в том, что это не ппосто апач, а русский апач. Он на лету начинает перекодировать поступающую информацию. Чтобы он этого не делал, надо в каталоге, в котором размещен скрипт, в .htaccess вставить соответствующий запрет
>Ответ на вопрос где-то тут на Opennet - в статье Максима (URL
>не помню - search =))
>Кратко: Скорее всего проблема в том, что это не ппосто апач, а
>русский апач. Он на лету начинает перекодировать поступающую информацию. Чтобы он
>этого не делал, надо в каталоге, в котором размещен скрипт, в
>.htaccess вставить соответствующий запретпоиск очень плохо работает(( а время поджимает...
пробовал в .htaccess вставлять строчки типа
<FILES upload.php>
CharsetDisable On
</FILES>но похоже она не будет перекодировать при запросе именно этот файл, а не отменяет перекодировку загружаемого.
CharsetRecodeMultipartForms Off
вроде бы это директива должна отключать перекодирование файлов (или всей информации) при передаче данных из формы - но похоже я что-то не понял.
попробовал<Directory /Doc>
CharsetDisable On
</Directory>Директория Doc - директория где хранятся закаченные файлы
c:/usr/www/ - мои пхп-шные скрипты
c:/usr/www/Doc - закачеваемые файлыДелаю предположение, что в этой дериктории при вводе/выводе не будет происходить перекодировка, но апач выдает 500 Internal Server Error
что-то делаю не так:(оставляю в .htaccess просто строчку
CharsetDisable On
Надеясь, что не будет происходить ни каких перекодировок... и все равно мой файл портится апачем!
Некоторая документация есть на
http://apache.lexa.ru/configure.html#charsetturnoff
но что-то ни чего не могу разобрать по моей проблеме.
А какой метод в формочке на upload стоит?
>А какой метод в формочке на upload стоит?
<form ENCTYPE="multipart/form-data" action="<? echo $url; ?>/addinfo.php" method="post">POST...
Глюканул... Про метод put вспомнил не к месту.А еще вопрос - он кодировку меняет при закачке (upload) или когда уже отдает клиенту?
А не оно ли????PL23.0, Apache 1.2.6, 4 Apr 1998, Alex Tutubalin
1. Добавлены директивы для манипулирования поведением сервера в зависимости
от вида запроса:CharsetRecodeMultipartForms On|Off (умолчание - On) - в(ы)ключает перекодировку
для запросов с Content-Type: multipart/form-data. Это лечит частный случай
file uploads - если вы ожидаете upload двоичных файлов, которые перекодировать
нельзя, то эта директива помогает эту перекодировку выключить. При этом
переменные CHARSET, SOURCE_CHARSET и так далее доступны из скрипта
(в отличие от CharsetTurnOff On)CharsetRecodeMethodsIn GET POST PUT ALL NONE (можно указывать любое число этих
слов) - позволяет выборочно включить/выключить перекодировку данных, полученных
от клиента в зависимости от HTTP Method. Запрос типа HEAD рассматривается
(как и в оригинальном Apache) как запрос типа GET. Все прочие методы
(DELETE,CONNECT,OPTIONS,TRACE) не требуют перекодировки.CharsetRecodeMethodsOut GET POST PUT ALL NONE - делают аналогичное включение/
выключение перекодировки для потока сервер-клиент. Если для
данного запроса перекодировка вывода выключена, то Content-Type: .. charset=,
Expires, Vary не выдаются. Переменные CHARSET и SOURCE_CHARSET доступны
скрипту даже при выключенной перекодировке.
Когда я наступала на такие же грабли помогло
CharsetRecodeMultipartForms Off в каталоге СКРИПТА
И так по порядку>А еще вопрос - он кодировку меняет при закачке (upload) или когда уже отдает клиенту?
Кодировку он меняет при закачке. Закачиваетм на сервер файл по сети (инета), далее пытаемся открыть на сервере вордом - ошибка открытия файла. неправильный путь файла или еще какой-то бред пишет.
>А не оно ли????
>CharsetRecodeMultipartForms On|Offвполне возможно, но не сработало. Прописывал в .htacess, на браузере нажимал назад, вперед, подтвердить отправку данный на устаревшей странице
Завтра попробую еще... но вряд ли перезегрузка сервера даст желаемый результат, как ни как .htacess должен сразу применяться, ибо считывается при каждом обращении клиента>Когда я наступала на такие же грабли помогло
>CharsetRecodeMultipartForms Off в каталоге СКРИПТАпрописывал там же...
Итог:
есть такие смутные ощущения, что
CharsetRecodeMultipartForms Off
действительно должен был работать...
Должно было, но не работает!!!
>Ответ на вопрос где-то тут на Opennet - в статье Максима (URL
>не помню - search =))
>Кратко: Скорее всего проблема в том, что это не ппосто апач, а
>русский апач. Он на лету начинает перекодировать поступающую информацию. Чтобы он
>этого не делал, надо в каталоге, в котором размещен скрипт, в
>.htaccess вставить соответствующий запретБыла такая же проблема.... И встает постоянно при использовании разных хостингов ;-)
Лечу ее так
в .htaccess в корне сайта вставляю следующий текст<IfModule mod_charset.c>
CharsetDisable on
# CharsetSourceEnc windows-1251
#Posible values: windows-1251 koi8-r
#Or for disable: CharsetDisable on
</IfModule>Проблема исчезает.....
>Лечу ее так
>в .htaccess в корне сайта вставляю следующий текст
>
><IfModule mod_charset.c>
> CharsetDisable on
># CharsetSourceEnc windows-1251
>#Posible values: windows-1251 koi8-r
>#Or for disable: CharsetDisable on
></IfModule>
>
>Проблема исчезает.....НЕ помогает!!!
все равно файл приходит битый :(((((вспомнил.. я лечил это установкой старого апача (не русского)
придется так же...