Move files - PHP№ 1
Автор: Винни
Дата : 02-01-05, Вск, 17:43:01

Хочу перенести все файлы из одной директории в другую (на сервре) используя РНР.
Этот код выдаёт: "Warning: unlink(filename.jpg): Permission denied in c:\inetpub\wwwroot\movefiles.php on line X"
В чем ошибка? (Файлы копируются, но оригиналы не удаляются... Удаление копий в этом случае я специально добавил)
   

if ($handle = opendir('sourcedir/' ))
{
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    while (false !== ($file = readdir($handle)))
    {
    if (!is_dir($file))
       {
       if (copy("sourcedir/".$file, "targetdir/".$file))
                {
                if (!unlink("sourcedir/".$file))
                        unlink("targetdir/".$file);
                }

       }
    }
    closedir($handle);
}
А кофе на клавиатуру тоже вирус пролил?



[ 03-01-05, Mon, 18:37:30 Отредактировано: Винни ]
Профиль 

Move files - PHP№ 2
Автор: Большой Грызь
Дата : 02-01-05, Вск, 23:34:07

Какая платформа? *никс или винды?
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 

Move files - PHP№ 3
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 00:44:18

Сорри с утречка еще не проснулся и не увидел:
c:\inetpub\wwwroot\movefiles.php


Сейчас кофе попью подумаю
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 

Move files - PHP№ 4
Автор: Briska
Дата : 03-01-05, Пнд, 15:28:49

Hey there are a few ideas you could try out.

1. instead of
while (false !== ($file = readdir($handle)))

write while (false != ($file = readdir($handle)))

2. try adding @ before unlink() - it simply suppresses the warning messages.

3. Make sure that the file in question is not being ised by windows, as it will prevent it from being dеlеtеd.
4. If your windows XP? implements some sort of permission control system make sure you have the access to dеlеtе the files.
5. BuHHu, you may wanna use rеnаmе() command for moving files. It is kinder to the processor and does what you are trying to achieve in just one statement:
$success = rеnаmе($sourceFile, $destFile);
          echo 'Succeeded?' . $success ;   


I'll have a think and write again if I have something to add at a later date.

hope this help.
Go linux
Тот самый Бриска из далекого и туманного...

[ 03-01-05, Mon, 22:29:21 Отредактировано: Briska ]
[ 03-01-05, Mon, 22:36:56 Отредактировано: Briska ]
[ 03-01-05, Mon, 22:37:21 Отредактировано: Briska ]
[ 03-01-05, Mon, 23:07:49 Отредактировано: Briska ]
Профиль 

Move files - PHP№ 5
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:03:58

Бриска, сорри, но первые два пункта не в тему

1. !== - это именно и есть правильный синтаксис для типизированного сравнения, а не !=

2. добавление @ просто уберёт сообщения об ошибках. Но не решит проблему
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 

Move files - PHP№ 6
Автор: Briska
Дата : 03-01-05, Пнд, 16:06:39

Бриска, сорри, но первые два пункта не в тему



я уже догадался... а вот как на счет остальных?
Тот самый Бриска из далекого и туманного...
Профиль 

Move files - PHP№ 7
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:14:22

3. вряд ли ВСЕ файлы в директории были открытыми

4. ммм... честно сказать в виндах поставить такой секьюрити - это нужно специально постараться А, насколько я понял, речь идет о каком-то полу-домашем сервере - какие там настройки секьюрити? Скорее действительно рид-онли атрибут у файлов, а РНР не захотел такое удалять.

5. rеnаmе в данном случае сработает не лучше unlink
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 

Move files - PHP№ 8
Автор: Briska
Дата : 03-01-05, Пнд, 16:16:59

ну вот... зря время потерял а так старался
Тот самый Бриска из далекого и туманного...
Профиль 

Move files - PHP№ 9
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:22:53

Насчет rеnаmе - беру свои слова взад. Может и сработает. Ибо перенос осуществляется внутри одного диска. Если бы между разными, тогда rеnаmе - тот же copy+unlink. Но на одном диске rеnаmе может сработать.
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 

Move files - PHP№ 10
Автор: Briska
Дата : 03-01-05, Пнд, 16:55:03

Straight from PHP.net


<?php
chmod("/somedir/somefile", 755); // decimal; probably incorrect
chmod("/somedir/somefile", "u+rwx,go+rx" ); // string; incorrect      
chmod("/somedir/somefile", 0755); // octal; correct value of mode
?>


I had no idea it was possible in PHP

PS Note: the 0 at the start doesn't work with windows. use only the decimal kind.
for more info click here
Тот самый Бриска из далекого и туманного...
Профиль 

Move files - PHP№ 11
Автор: Винни
Дата : 04-01-05, Втр, 17:04:39

И так - решения все еще нету.

WindowsXP-Pro-SP2
Server: IIS
PHP: Version 4.3.5
Logged On user: member of Administrators

На файлах нету ReadOnly...

А кофе на клавиатуру тоже вирус пролил?


Профиль 


Вы не зарегистрированы либо не вошли в портал!!!
Регистрация или вход в портал - в главном меню.



 Просмотров:   002572    Постингов:   000011