|
|
|
| На denver Скрипт работает.
Необхоодимо загружаласть картинка через форму в динамически созданую директорию.
Если директория уже создана какртинка копируется
images/hotel - директория где храняться папки и картинки на сервере
Проблема: на реальном хосте создается директория "turkey", а директории "5" и "test hotel" не создаются, и файл не копируется.
Как сделать чтобы директории "5" и "test hotel" создавались и в них копировались файл.
Помогите пожалуста, очень надо!!!
скрипт:
<?php
$country="turkey";
$star=5;
$hotel="test hotel";
$patch="../../images/hotel/";
$patch2="../../images/hotel/".$country."/";
$patch3="../../images/hotel/".$country."/".$star."/";
$patch4="../../images/hotel/".$country."/".$star."/".$hotel."/";
if(!empty($_POST))
{
$dir=scandir($patch);
// если нет директории "turkey" создаем её. (аналогично создаем другие директории)
if(!in_array($country,$dir))
{
mkdir($patch2, 0777); chmod($patch2, 0777);
}
$dir2=scandir($patch2);
if(!in_array($star,$dir2))
{
mkdir($patch3, 0777); chmod($patch3, 0777);
}
$dir3=scandir($patch3);
if(!in_array($hotel,$dir3))
{
mkdir($patch4, 0777); chmod($patch4, 0777);
}
if(copy($_FILES['small']['tmp_name'], $patch4."small.jpg"))
{
unlink($_FILES['small']['tmp_name']);
header("location:upload.php");
}
}
if(file_exists($patch4.'small.jpg'))
{
echo "<p>Картинка<br />
<img src='".$patch4."small.jpg' /></p>";
}
else
{
echo "<p>Нет картинки</p>";
}
?>
<form action="" method="post" enctype="multipart/form-data">
картинка<br />
<input name="small" type="file"><br />
<br />
<input name="sub" type="submit" value="Отправить">
</form>
|
| |
|
|
|
|
|
|
|
для: sanekdi
(22.09.2009 в 09:01)
| | 1) Выдаются ли какие-либо сообщения об ошибках?
2) Какие права доступа выставлены на директорию hotel? | |
|
|
|
|
|
|
|
для: cheops
(22.09.2009 в 11:54)
| | ошибок не какие не выдаются, права доступа 775
если, после mkdir идет функция chmod() на созданный каталог с правами 0777, тогда права на папку становаяться 777
но всё равно дальше запись в папку "turkey" не прооисходит
Права доступа на hotel = 777 | |
|
|
|
|
|
|
|
для: sanekdi
(22.09.2009 в 12:29)
| | попробуйте сделать так
$old = umask(0);
chmod ($file, 0777);
umask($old); | |
|
|
|
|
|
|
|
для: Visavi
(22.09.2009 в 22:24)
| | После исправлений хостера всё заработало.
Всем Спасибо!
На вопрос Пучему не работало раньше? хостер ответил:
PHP теперь работает в режиме CGI с правами пользователя, а не апача. | |
|
|
|