На локалке (Виндовс+ТопСервер) скрипт работает отлично. Всё копируется нормально. А вот на VDS (Debian 5) не хочет. Копирует непонятно что и как. В результате в папке появляется файл с половиной имени, что должно быть, его нельзя удалить, нельзя переименовать. Когда пытаюсь залить файл с полным именем, которое должно было скопироваться, то выдается также ошибка. Подскажите, в чем может быть проблема? При попытке залить нормальный файл: Unexpected directory listing line ' Davies'. Invalid rights description 'Davies' Ну и сам код: PHP: copy ($_SERVER[DOCUMENT_ROOT]."/img/p1/".$_POST['photo'], $_SERVER[DOCUMENT_ROOT]."/img/p2/".$rowx[2].".jpg") or die ("Ошибка копирования"); $_POST['photo'] состоит из номера изображения. Например, 15.jpg. $rowx[2] состоит из имени и фамилии. Например, Coco Chanelle. Уже и так пробывал: PHP: PHP код: $file = $_SERVER[DOCUMENT_ROOT].'/img/p1/'.$_POST['photo']; $dir = $_SERVER[DOCUMENT_ROOT].'/img/p2/'; $name = 'file.jpg' copy($file, $dir.basename($name));
Мне кажеться это из-за пробела в $rowx[2]. Я в пробелы заменил на нижнее подчеркивание "_": PHP: $rowx[2] = preg_replace ("/\s+/", "_", $rowx[2]); copy ($_SERVER[DOCUMENT_ROOT]."/img/p1/".$_POST['photo'], $_SERVER[DOCUMENT_ROOT]."/img/p2/".$rowx[2].".jpg") or die ("Ошибка копирования");
vorona вы уверены что ошибку вызывает именно строка с copy? Покажите значение $_POST['photo'] и $rowx[2] на проблемном файле Зачем и когда вы это делаете?
чел говорит что файл копируется... но потом не удаляется и не перезаписывается... отсюда следует что права на файл выдаются скриптом, или от какого имени он запущен... далее все зависит от палитики сервера, возможно сервер запрещает удалять файлы создаными от апача, рута или нойбоди... (уточни кому принадлежит созданный файл..) правь файл через chown ---- решение: запускать скрипт от своего имени || при копировании не используй полный путь... а отсчитывай относительно корневой папки сайта...