php - upload

Опубликовано в пользователем MacOS
Простейший вариант аплоада. Почему он не работает? Подскажите, а то свихнусь. Тестирую на своей машине - без проблем, а на этом сервере - нет:
http://ibelgique.ifrance.com/_aide/php/phpinfo.htm
[code:1]<?
$dir = "up/";
echo ("$userfile_name");
if(!empty($userfile)){
if (is_uploaded_file($_FILES["userfile"]["tmp_name"])) {
$res = move_uploaded_file($_FILES["userfile"]["tmp_name"], $dir.$_FILES["userfile"]["name"]);
if ($res){ echo ("OK");}else{ echo ("OOPS");}
}
} else {
echo ("<form action=edit.php method=post enctype=multipart/form-data>
<input type=hidden name=act value=upload>
Select file: <input type=file name=userfile> <input type=submit value=\"UPLOAD\">
</form>");
}
?>[/code:1]
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- 1173 просмотра
[quote="MacOS"]Простейший вариант аплоада. Почему он не работает? Подскажите, а то свихнусь. Тестирую на своей машине - без проблем, а на этом сервере - нет:
http://ibelgique.ifrance.com/_aide/php/phpinfo.htm
[code:1]<?
$dir = "up/";
echo ("$userfile_name");
if(!empty($userfile)){
if (is_uploaded_file($_FILES["userfile"]["tmp_name"])) {
$res = move_uploaded_file($_FILES["userfile"]["tmp_name"], $dir.$_FILES["userfile"]["name"]);
if ($res){ echo ("OK");}else{ echo ("OOPS");}
}
} else {
echo ("<form action=edit.php method=post enctype=multipart/form-data>
<input type=hidden name=act value=upload>
Select file: <input type=file name=userfile> <input type=submit value=\"UPLOAD\">
</form>");
}
?>[/code:1][/quote]
ЦИТИРОВАНИЕ
Попробуйте аплодить таким способом на сервер бинарные файлы. Скорее всего файлы окажутся "битыми": фотки не будут показываться, программы не запустятся, архивы не распакуются. Текстовые файлы (почти точно) не повредятся. Дело в том, что Русский Апач (ваш веб-сервер) перекодирует все подряд. Например, символ с кодом 0х00 он заменяет на пробел (символ с кодом 0х20). Чтобы выключить эту ненужную перекодировку, допишите в файл httpd.conf из каталога Апача (/usr/local/apache) следующие строки. Если у вас нет доступа к этому файлу и админ сервера не может сделать это за вас, ткните его в эти строки.
<Location />
CharsetRecodeMultipartForms Off
</Location>
Строку CharsetRecodeMultipartForms Off можно добавлять в разные места (один раз). Если вы совсем начинающий пользователь и не решите сами, куда писать эту строку, будьте аккуратнее при решении задачи методом тыка.
Источник: Загрузка файлов на сервер. Автор: Бардин Павел
http://compdoc.by.ru/internet/php/upload/
http://ibelgique.ifrance.com/_aide/php/phpinfo.htm
Там написано рекомендуемый метод GET
А у Вас POST используется.
Я думаю это однознчно из-за настроек на сервере. Надо ихних админов спросить.
http://www.epiware.com/scripts/upload.php
Рулез однозначный - залей его и запусти - он тебе все расскажет
если он скажет что все ок - то меняй свой скрипт - он будет работать только если globals on
Slava, спасибо ещё раз! Помог разобраться!
Февраль 15, 2004 - 17:49 ))))))))))))) надеемся проблему уже решили))