У меня есть рабочий процесс drupal.В нем я хочу скопировать файлы изображений (JPG) из исходного каталога в целевой каталог с функцией копирования PHP.Оба каталога существуют.Исходный файл тоже существует.Но копирование не удалось.
Я проверил наличие прав доступа к файлу исходного каталога (0755), исходного файла (0744) и целевого каталога (0755).Владелец и группа - это сценарий.
Я отладил, поместив успешный результат копии в сторожевой таймер.Это говорит, что это было успешно.Но файла там нет.
Это код, в котором происходит копирование
$copy_from = $_SERVER["DOCUMENT_ROOT"]."/".$file->filepath;
$copy_to = $_SERVER["DOCUMENT_ROOT"]."/".$path_new;
$success = false;
if (file_exists($copy_from)) {
$success = copy($copy_from, $copy_to);
watchdog('catalog_copy2', ($success ? 'yes' : 'no')
. ' | ' . "copy('{$copy_from}', '{$copy_to}')");
}
Если я скопирую вывод сторожевого таймера и слегка отредактирую его, чтобы он оказался в порядке копирования оболочки
cp path/to/file dest_path
Файл скопирован без всяких проблем.Так что никаких опечаток и проблем, чувствительных к регистру, не в порядке.
Я, очевидно, почти сошел с ума, потому что я не понимаю, почему я не могу копировать файлы с помощью PHP.
Странно, но некоторые файлы копируются с моей партией, а некоторые нет.
Буду признателен за любую подсказку, где искатьнайти решение.
edit
Я обошел проблему, используя команду shell cp
с помощью команды php exec
.Я не доволен этим, но мне пришлось заставить его работать.
edit
Я обошел проблему, используя функцию API из модуля file_field