переименовать файл в php на файловом сервере Windows (unc path) - PullRequest
1 голос
/ 02 февраля 2011

В PHP я хочу переименовать (переместить / скопировать) файл на файловом сервере Windows: "\ myserver \ folder1 \ folder2 \ myfile.pdf" в "\ myserver \ folder1 \ folder2 \ OLD \ myfile.pdf"

(все папки уже существуют и конечный файл не существует)

Я пробовал это:

copy("\\\\myserver\\folder1\\folder2\\myfile.pdf", "\\\\myserver\\folder1\\folder2\\OLD\\myfile.pdf");

и

copy("//myserver/folder1/folder2/myfile.pdf", "//myserver/folder1/folder2/OLD/myfile.pdf");

Я получаю:

[function.copy]: failed to open stream: Permission denied 

Компьютер, на котором я вхожу / вошел в систему как пользователь, имеет разрешения на переименование / перемещение / удаление / копирование в эту общую папку / папку.

Наверное, мне нужно как-то дать разрешения php, или запустить PHP как мой пользователь?ИЛИ

Ответы [ 2 ]

0 голосов
/ 19 апреля 2016

Не используйте Копировать ... вместо этого используйте move_uploaded

Это один пример получения изображения из формы:

$img = 'sample.jpg;
$path = '//nameofyourpcinyournetwork/sharedfolder/folderyoulike/';
$pathwithimg = $path.$img;
if (!is_dir($path)) {
  mkdir($path, 0644, TRUE); // TRUE for make it recursive
}
if (file_exists($pathwithimg)) {
 unlink($pathwithimg);
 move_uploaded_file($_FILES["file"]["tmp_name"], $pathwithimg);
 chmod($pathwithimg, 0644);
}

Измените safe_mod на Off, если он у вас включен

P.D. Да, я знаю, это сообщение 5 лет назад ... но никто не сказал правильный ответ, и другие люди (как я) могут найти этот вопрос

0 голосов
/ 02 февраля 2011

PHP будет работать от имени любого пользователя вашего веб-сервера. Вам необходимо предоставить разрешения для этой папки любой учетной записи пользователя.

...