|
Автор: Винни
Дата : 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 Отредактировано: Винни ] |
|
|
Автор: Большой Грызь
Дата : 02-01-05, Вск, 23:34:07
|
Какая платформа? *никс или винды? |
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|
|
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 00:44:18
|
Сорри с утречка еще не проснулся и не увидел:c:\inetpub\wwwroot\movefiles.php
Сейчас кофе попью подумаю |
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|
|
Автор: 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 ] |
|
|
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:03:58
|
Бриска, сорри, но первые два пункта не в тему
1. !== - это именно и есть правильный синтаксис для типизированного сравнения, а не !=
2. добавление @ просто уберёт сообщения об ошибках. Но не решит проблему
|
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|
|
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:14:22
|
3. вряд ли ВСЕ файлы в директории были открытыми
4. ммм... честно сказать в виндах поставить такой секьюрити - это нужно специально постараться А, насколько я понял, речь идет о каком-то полу-домашем сервере - какие там настройки секьюрити? Скорее действительно рид-онли атрибут у файлов, а РНР не захотел такое удалять.
5. rеnаmе в данном случае сработает не лучше unlink |
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|
|
Автор: Briska
Дата : 03-01-05, Пнд, 16:16:59
|
ну вот... зря время потерял а так старался |
Тот самый Бриска из далекого и туманного...
|
|
|
Автор: Большой Грызь
Дата : 03-01-05, Пнд, 16:22:53
|
Насчет rеnаmе - беру свои слова взад. Может и сработает. Ибо перенос осуществляется внутри одного диска. Если бы между разными, тогда rеnаmе - тот же copy+unlink. Но на одном диске rеnаmе может сработать. |
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|
|
Автор: 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 |
Тот самый Бриска из далекого и туманного...
|
|
|
Автор: Винни
Дата : 04-01-05, Втр, 17:04:39
|
И так - решения все еще нету.
WindowsXP-Pro-SP2 Server: IIS PHP: Version 4.3.5 Logged On user: member of Administrators
На файлах нету ReadOnly...
|
А кофе на клавиатуру тоже вирус пролил?
|
|