upload + apache + windows

-=[KILLER]=-

Новичок
upload + apache + windows

Пытаюсь загрузить картинку на локальный сервер (он же рабочая станция) с помощью php. Разные скрипты перепробывал, но думаю дело не в скрипте... Думаю дело в разрешении на доступ в папки. В линуксе - CHMOD... Я в windows убираю галочку с папки upload "только для чтения", ок, смотрю свойства - галочка опять стоит :( Хелп!
 

SiMM

Новичок
> Я в windows убираю галочку с папки upload "только для чтения", ок, смотрю свойства - галочка опять стоит
Это наверно всё же имеет смысл не в форуме по PHP спрашивать - PHP здесь не при чём.
 

svetasmirnova

маленький монстрик
>но думаю дело не в скрипте...
Откуда уверенность? Можно сделать тестовый файл с коротеньким скриптом и привести пример?
[telepat mode=On]
Или upload_tmp_dir в папке system? Перенеси куда-нибудь, куда доступ разрешён пользователю под которым php крутится
[/telepat mode]
 

kruglov

Новичок
-=[KILLER]=-
Она (галлочка) сама по себе появляется или после каких-то определенных действий?
 

svetasmirnova

маленький монстрик
Ребят, при чём тут галочка? Она на всех каталогах в Windows стоит. В том числе и на том, куда пишет мой Apache+php as module ;)
 

-=[KILLER]=-

Новичок
PHP:
ini_set('display_errors','On');
error_reporting(E_ALL ^E_NOTICE);
$upload_path = '/upload/';
echo $_SERVER['DOCUMENT_ROOT'].$upload_path;
echo '<br />';


if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . 
	$_FILES['userfile']['name'])) {
    print "Gooood.";

} else {
    echo "Bla bla bla. Filename: " . $_FILES['userfile']['name'];
}
Вывод:
d:/apache/hosts/serv1/www/upload/
Bla bla bla. Filename: 002.jpg
 

Кром

Новичок
Проверь директрорию на is_dir и is_writable.
Массив _FILES проверь на отсутствие ошибок.
 

svetasmirnova

маленький монстрик
А если:
PHP:
$upload_path = '/upload';
?
И совершенно непонятно, почему ошибок не выводит
 

Кром

Новичок
>$upload_path = '/upload';

Не, тут дело не в завершающем слеше. Просто приведенный скрипт написан от балды, поэтому директории, куда он пишет просто нет. is_dir это покажет.
 

-=[KILLER]=-

Новичок
PHP:
$upload_path = '/upload/';
echo $_SERVER['DOCUMENT_ROOT'].$upload_path;
echo '<br />';

if(is_dir ($_SERVER['DOCUMENT_ROOT'].$upload_path)){
	echo 'dir yes<br />';
}else{
	echo 'dir no<br />';
}
if(is_writable ($_SERVER['DOCUMENT_ROOT'].$upload_path)){
	echo 'wr yes<br />';
}else{
	echo 'wr no<br />';
}
if (is_uploaded_file($_FILES['userfile']['name'])){
	echo 'up yes<br />';
}else{
	echo 'up no<br />';
}
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_path . 
	$_FILES['userfile']['name'])) {
    echo 'Gooood.';

} else {
    echo 'Bla bla bla. Filename: ' . $_FILES['userfile']['name'] . '<br />';
	echo $_FILES['userfile']['error'];
}
Вывод:

d:/apache/hosts/serv1/www/upload/
dir yes
wr yes
up no
Bla bla bla. Filename: 002.jpg
2
 

Profic

just Profic (PHP5 BetaTeam)
еще один
[m]features.file-upload[/m]

PS. Ну и PHP FAQ: Различие между абсолютными и относительными путями. В файловой системе и на сайте.

-~{}~ 21.07.05 15:20:

-=[KILLER]=-
вот скажи мне дарагой, почему вначале ты обращаешься к $_SERVER['DOCUMENT_ROOT'].$upload_path, а потом вдруг просто к $upload_path?

-~{}~ 21.07.05 15:23:

и кстати
UPLOAD_ERR_FORM_SIZE
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.
 
Сверху