The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
apache + php + file upload, !*! Dif, 24-Сен-03, 18:59  [смотреть все]
При закачивании файла на сервер, то ли апач, то ли пхп что-то меняет в его структуре (была попытка закачать файл Doc.doc) после чего он не открывается редактором!

в месяц назад столкнулся с такой же проблемой... как решил вопрос не помню :( то ли поменял апач, на более старый, то ли еще что то...
скалероз понимаешь ли...

  • apache + php + file upload, !*! mar, 19:04 , 24-Сен-03 (1)
    Ответ на вопрос где-то тут на Opennet - в статье Максима (URL не помню - search =))
    Кратко: Скорее всего проблема в том, что это не ппосто апач, а русский апач. Он на лету начинает перекодировать поступающую информацию. Чтобы он этого не делал, надо в каталоге, в котором размещен скрипт, в .htaccess вставить соответствующий запрет

    • apache + php + file upload, !*! Dif, 19:35 , 25-Сен-03 (2)
      >Ответ на вопрос где-то тут на 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
      но что-то ни чего не могу разобрать по моей проблеме.


      • apache + php + file upload, !*! Rohan, 19:44 , 25-Сен-03 (3)
        А какой метод в формочке на upload стоит?


        • apache + php + file upload, !*! Dif, 19:48 , 25-Сен-03 (4)
          >А какой метод в формочке на upload стоит?


          <form ENCTYPE="multipart/form-data" action="<? echo $url; ?>/addinfo.php" method="post">

          POST...

          • apache + php + file upload, !*! Rohan, 20:02 , 25-Сен-03 (5)
            Глюканул... Про метод put вспомнил не к месту.

            А еще вопрос - он кодировку меняет при закачке (upload) или когда уже отдает клиенту?

            • apache + php + file upload, !*! Rohan, 20:12 , 25-Сен-03 (6)
              А не оно ли????

              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 доступны
                  скрипту даже при выключенной перекодировке.

              • apache + php + file upload, !*! mar, 20:41 , 25-Сен-03 (7)
                Когда я наступала на такие же грабли помогло
                CharsetRecodeMultipartForms Off в каталоге СКРИПТА
                • apache + php + file upload, !*! Dif, 21:46 , 25-Сен-03 (8)
                  И так по порядку

                  >А еще вопрос - он кодировку меняет при закачке (upload) или когда уже отдает клиенту?

                  Кодировку он меняет при закачке. Закачиваетм на сервер файл по сети (инета), далее пытаемся открыть на сервере вордом - ошибка открытия файла. неправильный путь файла или еще какой-то бред пишет.

                  >А не оно ли????
                  >CharsetRecodeMultipartForms On|Off

                  вполне возможно, но не сработало. Прописывал в .htacess, на браузере нажимал назад, вперед, подтвердить отправку данный на устаревшей странице
                  Завтра попробую еще... но вряд ли перезегрузка сервера даст желаемый результат, как ни как .htacess должен сразу применяться, ибо считывается при каждом обращении клиента

                  >Когда я наступала на такие же грабли помогло
                  >CharsetRecodeMultipartForms Off в каталоге СКРИПТА

                  прописывал там же...

                  Итог:
                  есть такие смутные ощущения, что
                  CharsetRecodeMultipartForms Off
                  действительно должен был работать...

    • apache + php + file upload, !*! zenon, 12:30 , 27-Сен-03 (10)
      >Ответ на вопрос где-то тут на 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>

      Проблема исчезает.....

      • apache + php + file upload, !*! Dif, 19:03 , 29-Сен-03 (11)
        >Лечу ее так
        >в .htaccess в корне сайта вставляю следующий текст
        >
        ><IfModule mod_charset.c>
        >     CharsetDisable on
        >#    CharsetSourceEnc windows-1251
        >#Posible values: windows-1251 koi8-r
        >#Or for disable: CharsetDisable on
        ></IfModule>
        >
        >Проблема исчезает.....

        НЕ помогает!!!
        все равно файл приходит битый :(((((

        вспомнил.. я лечил это установкой старого апача (не русского)
        придется так же...




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру