Ключевые слова:apache, rus, example, cgi, (найти похожие документы)
Date: 23 Mar 2000 18:59:48 +0300
From: "Yuri V. Pakhomov" <pakhomov@sai.msu.su>
Newsgroups: fido7.ru.linux
Subject: Передача бинарного файла через Web.
Hello, All!
Есть HTML-форма с элементом
<form method='post' ENCtype='multipart/form-data' action='aaa.cgi'>
<input type='file' name='Upload'>
которая позволяет выбрать и засосать на сервер бинарный файл.
На сервере есть перловый скрипт aaa.cgi, который вытаскивает
содержимое $Upload и кладет его в файл a.
use CGI;
$list = new CGI;
foreach $in_name ($list->param) {
${$in_name}= $list->param($in_name);
}
if (open(f,">a")){
while (read($Upload,$Buffer,1024)) {
print f $Buffer;
}
close(f);
}
На одной машине (Sun Ultra 1, Solaris 7) все работает прекрасно. И на
другой (AMD K6-200, Linux 2.2.14) тоже. Но вот при переносе на еще
другую машину (Sun Ultra 60, 2-ух процессрная, Solaris 7) наблюдается
странность, которая проявляется заменой кода chr(0) на код chr(32) -
пробел.
При передаче таким способом картинки, последняя портится.
В чем трабл?
Ответ:
Скорее всего там установлен русский apache. Для решения проблемы в .htaccess
следует добавить директиву "CharsetRecodeMultipartForms Off".