Forum Webscript.Ru

Программирование => PHP => Тема начата: DJ Fat от 05 Мая 2003, 19:25:35

Название: Как установить chmod при закачке файла на сервер?
Отправлено: DJ Fat от 05 Мая 2003, 19:25:35
Подскажите, пожалуйста, что нужно добавить в этот upload-скрипт и куда, чтобы при закачке был установлен chmod 777?

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

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


$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, на случай, если ты читаешь это сообщение, извини, другого выхода, как попросить помощи на форуме я не нахожу: ты не отвечаешь уже месяц...
Название: Как установить chmod при закачке файла на сервер?
Отправлено: DJ Fat от 05 Мая 2003, 20:09:38
Дополнительная информация
Получил дополнительную информацию от хостинг-провайдера, возможно, это поможет прояснить ситуацию. Цитирую:
Цитировать
Потому что при закачке файлов по FTP последние получают владельца - ваш uid.
При php -
upload-e закачаный файл получает владельца - uid процесса, его создавшего. А так как php скрипты
запускаются с uid, отличным от вашего, то и файлы наследуют этот uid и вы получаетесь чужим для
них.
Для того, чтобы вы по FTP могли их модифицировать/удалять, нужно после upload-a
назначать им атрибуты 777 скриптом.
Название: Как установить chmod при закачке файла на сервер?
Отправлено: nagash от 05 Мая 2003, 20:24:03
chmod($dir."c".(100000+$num).".zip",0777)
Название: Как установить chmod при закачке файла на сервер?
Отправлено: nagash от 05 Мая 2003, 20:26:25
а ещё полезная штука в данном процессе umask (http://www.php.net/umask)
Название: Как установить chmod при закачке файла на сервер?
Отправлено: DJ Fat от 05 Мая 2003, 20:32:45
nagash
Цитировать
chmod($dir."c".(100000+$num).".zip",0777)

А куда это вставлять?
Название: Как установить chmod при закачке файла на сервер?
Отправлено: nagash от 05 Мая 2003, 21:37:55
немного неожиданный вопрос
ну поставь после
echo "Файл закачен.";
Название: Как установить chmod при закачке файла на сервер?
Отправлено: DJ Fat от 05 Мая 2003, 22:04:35
nagash
Спасибо, теперь всё работает. А про "неожиданность" моего вопроса я упомянул в первом сообщении, читай внимательнее:
Цитировать
напишите, какой кусок кода куда вставить