Как получить доступ к удаленному файлу на диске Windows из Ubuntu с помощью php - PullRequest
0 голосов
/ 22 марта 2011

У меня была эта команда в windows:

exec('copy /V "'.$file.'" "'.$dest.'"');

где $ file - УДАЛЕННЫЙ файл на диске Windows в форме:

\\server\dr1$\folder\file
\\server\dr2$\folder\file
\\server\dr0$\folder\file
\\server\dr1$\folder\file2
\\server\dr1$\folder\file1

и так далее. И назначение это локальный файл на сервере. Обратите внимание, что диски меняются все время, и что они не известны заранее (они приходят из результата БД). В Windows все хорошо, выполненная команда будет выглядеть примерно так (/ V для проверки правильности копирования файла):

copy /V \\server\dr1$\folder\file c:\users\test\file

однако, я не знаю, как запустить это в Linux, когда я пытаюсь

cp \\server\dr1$\folder\file /home/test/file

Я получаю:

cp: cannot stat '\\server\dr1$\folder\file': No such file or directory.

Спасибо

Nano.

Ответы [ 2 ]

0 голосов
/ 22 марта 2011

Вы можете использовать PHP для выполнения smbclient команд. Smbclient ведет себя почти так же, как FTP, есть пара классов, которые помогут вам в PHP.

В качестве альтернативы вы можете смонтировать файловую систему в пространстве пользователя через FUSE (смотрите https://serverfault.com/search?q=fuse+cifs), скопировать файлы и снова размонтировать диск.

0 голосов
/ 22 марта 2011

Вам необходимо использовать Samba / CIFS, чтобы смонтировать диск перед копированием в / из него.

Это выглядело бы примерно так:

mount -t cifs //servername/sharename ./mountpoint/
cp ./mntpoint/folder/file /home/test/file

По этому поводу достаточно документации.Попробуйте прибегнуть к помощи smbclient или cifs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...