Загрузка файлов

Здравствуйте. Столкнулся с ошибкой при загрузке файлов.

Вот часть кода из actionUpdate.


$model->attributes=$_POST['Service'];

$picture = CUploadedFile::getInstance($model, 'picture');

if($model->save())

{

	if ($picture)

	{

	   $dirPath = Yii::app()->basePath . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR . 'service';

           if (!file_exists($dirPath))

	      mkdir($dirPath);

	   $dirPath .= DIRECTORY_SEPARATOR . $this->id;

	   if (!file_exists($dirPath))

	      mkdir($dirPath);

	   if ($dir = opendir($dirPath))

	   {

		while ($file = readdir($dir))

		{

		   unlink($file);

		}

	   }

	   $newPath =  $dirPath . DIRECTORY_SEPARATOR . $picture->name;

           $picture->saveAs($newPath);

	}

        $this->redirect(array('view','id'=>$model->id));

}

Выдает ошибку на строке mkdir($dirPath). Ладно, закомментировал часть кода, создал каталоги вручную - теперь ошибка на строке $picture->saveAs($newPath); Ошибка заключается в том, что move_uploaded_file неможет сохранить файл в указанный путь (no such file or directory), хотя $newPath задан корректно, я даже его вывел на экран, чтобы посмотреть, что эта переменная содержит.

Ни как непойму в чем дело. Может быть нехватает прав на запись, но тогда как их выставлять, это же не Linyx, а Windows 7. Смотрю свойства, там отмечено ТОЛЬКО ДЛЯ ЧТЕНИЯ. Снимаю галочку, сохраняю. Открываю опять свойства - там опять отмечено ТДЧ. Как эти права выставлять? Где? Или ошибка в другом? Помогите, пожалуйста, господа программисты!

Судя по всему Ваш проект находится в подкаталоге каталога "Program files" перенесите его в другое место. Для Apache см. httpd.conf, опция DocumentRoot и т.д., но проще всего это сделать переустановкой веб-сервера (к примеру в каталог c:\Apache).

Полноценный сервер Apache не устанавливал, пока обхожусь ДеНВеРом. Установил его в D:\WebServers. При старте создается диск Z. Так что до "Program Files" там далеко.

Уф, наконец-то, получилось. Там правда еще некоторые ошибки есть, но с ними я точно справлюсь. Но самое главное решено - каталоги создаются и файлы тоже в них записываются.

А ошибка была в этой строке:


$dirPath = Yii::app()->basePath . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'service';

Конструкция Yii::app()->basePath ведет не в корневой каталог, а в поддиректорию /protected.

Сделал так:


$dirPath = 'images' . DIRECTORY_SEPARATOR . 'service';