$ImgDir=strval($_POST['mtype']);
if (@$doUpload)
{
if (@file_exists($File))
{
Copy($File, "$ImgDir/".basename($File_name));
}
}
?>[/PHP]
Вроде все легко и просто до безобразия. Но! на виндовом апаче он у меня файлы загружает. На апаче, который я поднял под Линуксом(Debian) он файл почему-то принимать не хочет. вот эта переменная - $File_name почему-то оказывается пустой. не хотит принимать ни какие файлы, даже те, названия которых состоит из одних цифр.
[Ответ]
Yandex 23:11 25.02.2009
Предположу
> <input type=File_name=File><br>
регистр в *nix обычно имеет значение. Ну еще бы проверил настройки папок на предмет "неправильных" кавычек и слешей в пути.
P.S. php почти не знаю.
[Ответ]
Виктoр 01:04 26.02.2009
Yandex, нет. тут проблема не в путях. сейчас вообще убрал строку и strval($_POST['mtype']) задал папку "temp". Результат тот же. имя файла почему-то приходит пустым. я там задал форму такую, что к заргужаемому файлу приклепляется описание:
[PHP]$d=@opendir($tmp);
if(!$d)
{
mkdir($tmp);
}
chdir($tmp);
$fname="{$File_name}";
if (is_file("{$fname}.txt"))
{
$i=1;
while (is_file("{$fname}({$i}).txt")) {$i++;}
$fname.="({$i}).txt";
}
else
{
$fname.=".txt";
}
$tmp="docs/".$ImgDir;
$fname.=".txt";
$file=fopen($fname, "w+b");
$dat=date("Y,m,d,G:i D");
$str="{$_POST['name']}\n{$dat}\n{$_POST['text']}";
fwrite($file,$str);
fclose($file);[/PHP]
и все. переменные с полей name, text передаются. и по директории docs/console (в моем примере это имя переменной mtype) создается текстовик с правильным содержанием. но с именем ".txt". т.е. у меня имя имя файла в самом начале пустое.
$fname="{$File_name}";
Причем этот же скрипт под виндой-то работает.
Сообщение от Виктoр:
Но! на виндовом апаче он у меня файлы загружает. На апаче, который я поднял под Линуксом(Debian) он файл почему-то принимать не хочет.
настройки одинаковые?
есть мнение что виноваты разрешения на папки, куда загружаете.
[Ответ]
Виктoр 21:23 26.02.2009
Сообщение от ][irurg:
есть мнение что виноваты разрешения на папки, куда загружаете.
Это я тоже уже просмотрел. В папку console куда я хочу записать, разрешено писать всем и вся.
Конфиги тоже лопатил. Ничего инетерсного не нашел..Извините, я не спец в этом.
в архиве конфиги обоих
A-Maverick
под виндой код выдает тоже самое.
Изображения
Сообщение от Виктoр:
В папку console куда я хочу записать, разрешено писать всем и вся.
а эта папка находится в www? имхо если код работает под виндой значит он верный.
а что говорят логи апача
[Ответ]
Виктoр 07:49 28.02.2009
][irurg, молчат. там про загрзуку файлов ничего. лишь в логе эррор.лог ругается на отсутсвующий файл favicon.ico. как я понимаю это как-то его стандартный файл, т.к. в моем проекте он нигде не используется.
[Ответ]
Yandex 09:42 28.02.2009
Виктoр, дурной вопрос - версии php/Apache на серваках совпадают?
[Ответ]
Виктoр 18:24 28.02.2009
Yandex, действительно дурной. дико сомневаюсь что от версии что-то зависит.
Linux Debian 4.0 r3
PHP 5.2.0-8+etch13 (cli) (built: Oct 2 2008 08:26:18)
apache 2.2.3-4 +etch6
под виндой:
Apache 2.2.6
PHP 5.2.5
Немножко различаются. Ну и что теперь? Обновлять под линуксом апач? А типа в той версии такой простой код реалиовать нельзя?
Вопрос носит, наверно, чисто административный характер, а не программируемый. Тему можно закрыть или перенести в соотвествующий раздел(не знаю куда )
[Ответ]
][irurg 19:44 28.02.2009
Виктoр, попробуйте расположить папку куда закачиваете в директории www апача. в аналогичной ситуации однажды помогло, особенно если лениво ковырять настройки
[Ответ]
Yandex 23:02 28.02.2009
Виктoр, ну мало ли - может там 4 и 5 версии были.
Кстати, почему бы не посмотреть, что сам php пишет, убрав подавление ошибок @?
Ну и конечно давно надо уже было пнуть php-истов на их форумах.
[Ответ]
Виктoр 01:00 01.03.2009
][irurg, весь сайт со всеми папками расположен в www/apache2-default
Yandex, убрал подавление ошибок. ничего не изменилось.
Сообщение от Yandex:
Ну и конечно давно надо уже было пнуть php-истов на их форумах.
Дал первый пинок. 50 просмотров, ответа нет. жду-с...
[Ответ]
Rаvel 18:29 01.03.2009
Неплохо было бы еще приложить php.ini, конкретно блок "File Uploads"
[Ответ]
Виктoр 19:54 01.03.2009
Rаvel, это?
Сообщение от :
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir =/www/apache2-default/tmp
; Maximum allowed size for uploaded files.
upload_max_filesize = 100M