Strict Standards: Resource ID#24 used as offset, casting to integer (24) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: FM 1.0 - проблемы с upload
ТвойWeb » » ExBB Full Mods » FM 1.0 - проблемы с upload

Страниц (1): [1]
 

1. Nikitich - 31 Января, 2008 - 00:53:22 - перейти к сообщению
Hi All,

При аплоаде бинарных файлов на сервер они засовываются в формат TAR, потом обрабатываются GZip'ом , а при даунлоаде получившийся архив попадает в WinRAR, и в итоге в Денвере все нормально, а в FreeBSD в этой цепочке что-то не срабатывает, и все нулевые байты становятся пробелами (00->20, ну и по мелочи 61->41, 62->42 и т.п.), и в результате текстовым файлам ничего, а бинарные просто портятся.

Кто-нибудь сталкивался с этой проблемой?
2. Nikitich - 01 Февраля, 2008 - 06:46:01 - перейти к сообщению
Nikitich пишет:
в результате текстовым файлам ничего, а бинарные просто портятся.


Долго ковырял код форума, ничего не нашел, но проблема была не в форуме, а в настройках Russian Apache - сам сервер портил кодировку при загрузке.

Дело в том, что, чтобы загрузить файл на сервер через PHP, нужно создать примерно такую форму:
CODE:
<form enctype="multipart/form-data" action="some_forum_script.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Отправить этот файл: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>


При этом важно, чтоб тип данных был "multipart/form-data", иначе PHP файл не загрузит. Примерно так EXBB и работает: создает форму, указывает этот тип данных, получает файл, переносит его в uploads, затем кодирует в tar и gzip. Когда я заметил, что файл прилетает уже порченый, я полез разбираться с Апачем и нашел, что перекодировку этого типа данных при загрузке методом POST можно отключить.

Для этого надо в файл httpd.conf добавить следующее:
CODE:

<Location />
CharsetRecodeMultipartForms Off
</Location>


После этого перезапустил Апач и вуаля! Все работает.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0275]     [ Gzipped ]