Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Загрузка файлов на хостинге h12.ru


Автор: Гость_Dmitriy 21.2.2005, 02:17
Добрый день. Помогите разобраться с проблемой.
Скрипт создаёт папки на хостинге h12.ru, в которые пользователь может загружать фотографии (jpg/jpeg, gif, bmp, png)
Почему-то если папка создана скриптом и файл в неё загружен скриптом - не получается получить доступ к этому файлу даже из скриптов:(
Если я создаю папку вручную, из фтп клиента, и загружаю вручную картинку - всё ОК!
Если создаю папку вручную, а потом загружаю в неё файл с помощью скрипта - траблы те же. smile

Кто-нибудь знает, почему??

Автор: Mal Hack 21.2.2005, 08:17
Прав доступа не хватает.
CHMOD http://php.net/chmod

Автор: Гость_Dmitriy 21.2.2005, 11:55
Хватает!
У каталогов ставлю 755 (если создаю вручную, то тоже 755 ставится)
у файлов 644, а при загрузке 644 ставится...

Загружаю картинки. Если загружаю скриптами - пустой квадратик, если вручную - всё ок!

Автор: Guest 21.2.2005, 11:58
я имею в виду, после загрузки скриптами картинки нельзя посмотреть, а если вручную - можно!

Автор: Mont 21.2.2005, 12:05
Код в студию! smile

Автор: Mister U 21.2.2005, 12:37
Создание папки:
Код

if(is_dir("userphotos/".$userid)==FALSE)
{
mkdir("userphotos/".$userid,0777);
}


Форма (загрузка файла):
Код

<form enctype="multipart/form-data" action="index.php?s=userphotos&act=upload" method="post">
<td align="center">
<br>
<table width="500"  border="0" cellpadding="2" cellspacing="2">
 <tr>
   <td bgcolor="#f9f9f9" align="center">Путь к файлу: <input type="file" name="fupload"></td>
 </tr>
 <tr>
   <td bgcolor="#f9f9f9" align="center"><input type="submit" value="Загрузить!"></td>
 </tr>
</table>
</td>
</form>



Сохраняем файл на сервере:
Код

if($act=="upload")
{
 $MAX_FILE_SIZE="150000";
 
 $file_dir="userphotos/".$userid;
 $file_url=$site_address."/userphotos/".$userid;
 if(isset($fupload))
 {
 
?>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
 <tr>
   <td height="20" background="images/capt.gif" bgcolor="#f9f9f9"><b>Отчёт</b></td>
 </tr>
 <tr>
   <td><br>
<?php
  $err=0;
 
  if($fupload=="none")
  {
   echo "Ошибка! Не выбран файл!<br>";
   $err=1;
  }
  if($fupload_size==0)
  {
   echo "Файл, который Вы пытаетесь загрузить, весит 0 байт. Ошибка!!<br>";
   $err=1;
  }
  if($fupload_size>$MAX_FILE_SIZE)
  {
   echo "Максимальный размер загружаемого файла: ".$MAX_FILE_SIZE." байт, а размер загружаемого Вами файла: ".$fupload_size." байт :(";
   $err=1;
  }
 
  if($err==0)
  {
   if($fupload_type=="image/gif" or $fupload_type=="image/pjpeg" or $fupload_type=="image/bmp" or $fupload_type=="image/x-png")
   {
    copy ($fupload, "$file_dir/$fupload_name") or die ("Не получается скопировать :(");
    chmod ($file_dir."/".$fupload_name,0777);
   
    echo "Файл успешно сохранён! Чтобы его открыть, нажмите <a href='".$file_url."/".$fupload_name."' target='_blank'>здесь</a>\n\n";
   }
   else
   {
    echo "Можно загружать файлы следующих типов: jpg/jpeg, bmp, gif, png. Тип загружаемого файла не соответствует никакому из перечисленных.:(";
   }
  }
 
 }
?>
</td>
 </tr>
</table>
<br>
<?php
}
?>

Автор: IZ@TOP 21.2.2005, 15:03
Создаем папку с помощью ФТП клиента и проставляем чмоды тоже с помощью ФТП клиента. А через скрипт ты на Холме папке права не назначишь.

Автор: Mister U 21.2.2005, 15:59
С папкой всё ОК!
Права надо файлу как-то выставить...

Скриптом создал папку и выставил права. А потом вручную загрузил картинку.
Всё в порядке - грузится!

Если скриптом создаю папку и скриптом загружаю файлы - не грузятся! smile

Причём вот ещё что.. непонятно почему... Если загруженный скриптом файл попробовать скачать какой-нибудь качалкой, например, Download Master'ом - качается без проблем! А если в браузер ссылку кинуть чтобы этот файл отобразился - не грузится! smile

Автор: z-END 21.2.2005, 16:05
скорее всего пхп в сэйф-моде.
советую почитать по топику: move_uploaded_file

Автор: Mister U 21.2.2005, 16:37
Похоже это файл не сохраняется как следует smile
С помощью скрипта залил файл щас на сервер, сохранил, скачал по фтп. Размер сохранился, всё как положено, но вот ACDSee хотя бы не видит картинку эту! (файл jpg)

Автор: InfMag 22.2.2005, 10:45
Стойте. У меня ведь тоже трабл появится, поскольку я щас сайт делаю на холме.
Мне нада будет фотки загружать и удалять и т.п.
Не понимаю, можно ли тут выйти из положения?
Добавлено @ 10:50
Ага! Стоп. Так люди, там ведь есть настройка готового форума phpBB, а на нем всегда есть выклад файлов. Значит выход все-таки есть?

Автор: Гость_Dmitriy 22.2.2005, 12:01
Да.
Не знаю, я не люблю готовые скрипты юзать. Лучше самому, как говорится, изобрести велосипед и долго думать, почему он не работает smile( НО в конце концов разобраться.

В общем, файлы загружаются, но не до конца почему-то! (уже несколько человек загружали, а я по фтп скачивал - они "пустые". Т.е. jpg файл, например, не открывается smile ну то есть открывается, но картинки нет! ) С правами доступа всё ОК!

Автор: fuckerok 16.4.2005, 05:20
вот у меня такая же проблема smile
Мой http://forum.vingrad.ru/index.php?showtopic=48870 топик

Автор: Gold Dragon 16.4.2005, 08:43
А вы не рассматриваете проблему самого хоста, там много запрещено, например, у меня на с h11 нельзя файлы использовать на другом сайте smile

Автор: InfMag 17.4.2005, 02:37
Советую http://jino-net.ru

Автор: fuckerok 20.4.2005, 02:52
Red Dragon
Очень странно тогда получается.
А получается, что хостинг определяет брузер и если это ослик, то делает с файлом что-то сверх естественное.... Под другими браузерами ведь всё нормально работает (netscape, opera)
вообщем прочтите мой пост http://forum.vingrad.ru/index.php?showtopic=48870

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)