Автор Тема: Как установить chmod при закачке файла на сервер?  (Прочитано 3895 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DJ Fat

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 158
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mixgalaxy.ru/
Подскажите, пожалуйста, что нужно добавить в этот upload-скрипт и куда, чтобы при закачке был установлен chmod 777?

Почему возникла эта необходимость? - спросите вы. Дело в том, что файлы, которые закачиваются этим скриптом имеют chmod 600 и не знаю почему, их не получается скачать через FTP-клиент. FlashFXP, к примеру, пишет "Error 550: Permission denied". Также у закаченных этим скриптом файлов невозможно поменять chmod. Однако, остальные операции с закаченными скриптом файлами проходят отлично. Работает загрузка через браузер и т.п. Но через FTP-клиент никак! :(

Мой хостинг-провайдер посоветовал мне следующее:
Цитировать
После закачки файлов устанавливайте скриптом
атрибуты 777 (chmod 777)
 
Ниже приведён текст скрипта.

<?php

$dir
="/pub/home/etc";
$counter_fname="counter.num";

if(
$submit) {

if(
$_FILES[\'userfile\'][\'type\']=="application/x-zip-compressed") {
  if($_FILES[\'userfile\'][\'size\'] < 800000) {
    if(is_uploaded_file($_FILES[\'userfile\'][\'tmp_name\'])) {
      
      $num=0;

        if (file_exists($counter_fname)) { 

          $f=fopen($counter_fname,"r");
          $num=fread($f,filesize($counter_fname));      
          fclose($f); 

        }

        $num++;
        $fh=fopen($counter_fname,"w+");
        fputs($fh,$num);
        fflush($fh);
        fclose($fh);

        if(move_uploaded_file($_FILES[\'userfile\'][\'tmp_name\'], $dir."c".(100000+$num).".zip")) {

        echo "Файл закачен."; 

      } else { echo "Файл не закачен."; }

    } else { echo "Файл не закачен."; }

  } else { echo "Файл не закачен."; }

} else { echo "Файл не закачен."; }

?>


PS: я чайник, поэтому, если вы захотите мне помочь, напишите, какой кусок кода куда вставить, ибо я в этом разбираюсь очень плохо... :insane:

webprog, на случай, если ты читаешь это сообщение, извини, другого выхода, как попросить помощи на форуме я не нахожу: ты не отвечаешь уже месяц...
« Последнее редактирование: 05 Мая 2003, 20:07:55 от DJ Fat »
C уважением, DJ Fat
MixGalaxy.ru - Форумы MixGalaxy.ru - Всё о FruityLoops - eJay.ru[

Оффлайн DJ Fat

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 158
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mixgalaxy.ru/
Дополнительная информация
Получил дополнительную информацию от хостинг-провайдера, возможно, это поможет прояснить ситуацию. Цитирую:
Цитировать
Потому что при закачке файлов по FTP последние получают владельца - ваш uid.
При php -
upload-e закачаный файл получает владельца - uid процесса, его создавшего. А так как php скрипты
запускаются с uid, отличным от вашего, то и файлы наследуют этот uid и вы получаетесь чужим для
них.
Для того, чтобы вы по FTP могли их модифицировать/удалять, нужно после upload-a
назначать им атрибуты 777 скриптом.
C уважением, DJ Fat
MixGalaxy.ru - Форумы MixGalaxy.ru - Всё о FruityLoops - eJay.ru[

Оффлайн nagash

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 341
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.nagash.org
chmod($dir."c".(100000+$num).".zip",0777)

Оффлайн nagash

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 341
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.nagash.org
а ещё полезная штука в данном процессе umask

Оффлайн DJ Fat

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 158
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mixgalaxy.ru/
nagash
Цитировать
chmod($dir."c".(100000+$num).".zip",0777)

А куда это вставлять?
C уважением, DJ Fat
MixGalaxy.ru - Форумы MixGalaxy.ru - Всё о FruityLoops - eJay.ru[

Оффлайн nagash

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 341
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.nagash.org
немного неожиданный вопрос
ну поставь после
echo "Файл закачен.";

Оффлайн DJ Fat

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 158
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mixgalaxy.ru/
nagash
Спасибо, теперь всё работает. А про "неожиданность" моего вопроса я упомянул в первом сообщении, читай внимательнее:
Цитировать
напишите, какой кусок кода куда вставить
C уважением, DJ Fat
MixGalaxy.ru - Форумы MixGalaxy.ru - Всё о FruityLoops - eJay.ru[

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28