Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Файл передается не правильно...


Автор: SDEVIL 20.6.2007, 09:58
При передачи файла на сервер происходит следующее: передается файл, вес файла переданного на сервер и исходного, полностью совпадает, а вот сам файл портится(картинка не отображается), причем если скачать этот файл с сервера то на локальном компе он тож не открывается. Файлы загружаю на сервер через move_uploaded_file, вес файлов не больше 100кб, а максимальный размер файлов - 2мб...
Может кто знает почему такое происходит???

Автор: PARROT 20.6.2007, 10:33
скрипт в студию.

Автор: SDEVIL 20.6.2007, 17:11
Скрипт размещения файлов на сервере:
Код


$tmp_ras = strstr($_FILES["upload_file_on_server"]["name"], ".");
if($tmp_ras == '.gif' || $tmp_ras == '.jpg' || $tmp_ras == '.jpeg' || $tmp_ras == '.png' || $tmp_ras == '.ico' || $tmp_ras == '.bmp'){
    $uploaddir = "../images/";
}else{
    $uploaddir = "../data/";
}
if(move_uploaded_file($_FILES["upload_file_on_server"]["tmp_name"], $uploaddir.$_FILES["upload_file_on_server"]["name"])){
        echo("Файл загружен.<br><br>");
}else{
    echo("При загрузке файла на сервер возникли ошибки.<br><br>");
}


P.S.Причем на другом хостинге все работает!

Автор: ksnk 20.6.2007, 17:23
Русский Apache? 
Цитата

Почему при загрузке скриптом не загружаются (бьются) бинарные файлы (картинки, архивы)?
На нашем сервере используется русский Apache, который по умолчанию перекодирует все принимаемые данные из множества русских кодировок, используемых у клиента, в одну стандартную, в которой они хранятся на сервере. На нашем сервере это windows-1251. Бинарные данные не должны подвергаться перекодированию, соответственно, эту функцию следует отключить. Для этого нужно в каталоге, где лежит загружающий скрипт, создать файл .htaccess и поместить в него директиву, отключающую перекодировку.

CharsetRecodeMultipartForms off

Эта директива отключает перекодировку данных, отправляемых из html-формы в формате multipart/form-data (который и применяется для загрузки файлов на сервер с помощью html-формы). Учитывайте, что если в форме, данные из которой принимает скрипт с отключенной перекодировкой, есть текстовые поля, то перекодировать их вам придется самостоятельно.


Автор: SDEVIL 21.6.2007, 00:40
А если в этой же директории лежит скрипт для работы с базой, выходит весь текст передаваемый на сервер из скриптов где в директории лежит данный файл с директивой, придется перекодировать???

Автор: Levsha 21.6.2007, 09:22
Цитата(ksnk @  21.6.2007,  01:23 Найти цитируемый пост)
в одну стандартную, в которой они хранятся на сервере.

ИМХО здесь речь только про хранение на сервере файлов, БД тут ни при чем... Ну сам посмотри, текст в базу нормальный передается?

Автор: SDEVIL 21.6.2007, 11:53
Цитата

Учитывайте, что если в форме, данные из которой принимает скрипт с отключенной перекодировкой, есть текстовые поля, то перекодировать их вам придется самостоятельно.


Цитата

ИМХО здесь речь только про хранение на сервере файлов, БД тут ни при чем... Ну сам посмотри, текст в базу нормальный передается?


ИМХО написано что это директива для аппача значит она для всех скриптов отключает перекодировку, наверно и для текстовых полей которые идут в базу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)