Я сопоставил сетевой диск с компьютером в своей домашней сети. Теперь я пытаюсь получить к нему доступ через PHP – я сделал этот быстрый тест:
echo opendir('Z:\\');
Это дает мне:
Warning: opendir(Z:\) [function.opendir]: failed to open dir: No error in C:\wamp\www\webs\tester-function.php on line 3
Что я тут сделал?
Я не хочу, чтобы мои пользователи вводили UNC-путь, поэтому есть способ получить путь UNC для них, и, возможно, это будет работать, когда я попытаюсь получить к нему доступ? Это возможно на языках Microsoft, но я не уверен, как заставить PHP делать это – возможно, используя команду cmd.exe?
Обратите внимание: сопоставленный диск существует, поскольку я вижу его, и я могу получить к нему доступ. Это также не похоже на проблему с разрешениями, поскольку я предполагаю, что он пожаловался бы на это, если бы он мог получить доступ к этому диску … правильно?
Спасибо всем за любую помощь
Пользовательские примечания к opendir () имеют следующее:
Я пытался получить доступ к сетевым дискам, используя эту функцию opendir. Я читал так много сообщений, что почти невозможно получить доступ к сетевому диску, и, наконец, я нашел ответ; для доступа к сетевому диску с PHP необходимо выполнить 2 шага на одном компьютере или другой машине.
в этом случае права пользователя, казалось, действительно были проблемой, которая может отличаться от ваших прав в зависимости от того, на каком пользователе работает PHP / веб-сервер.
просто, используйте: "\\\\server\\dir\\subfolder"
в качестве пути. убедитесь, что вы можете получить доступ к «серверу».
работает на меня.
$arquivo = "\\\\server\\dir\\subfolder\\file.txt"; echo is_file($arquivo); //print 1.
Откройте MMC Services, перейдя в меню «Пуск» -> «Выполнить» (или с помощью окна поиска, если используете Windows 7) и введите «Services.msc» и нажмите «Ввод». Найдите службу Apache. Никогда не использовал WAMP, я понятия не имею, как он был назван. Надеюсь, что это начинается со слова «Apache», и, следовательно, его не должно быть слишком сложно найти. Щелкните правой кнопкой мыши службу и выберите «Свойства». Перейдите на вкладку «Вход в систему». Выберите переключатель рядом с «Эта учетная запись:» и введите учетные данные для учетной записи пользователя, для которой вы хотите запустить Apache. Если это учетная запись сети / домена, используйте синтаксис «DOMAIN \ user» (или выполните поиск учетной записи с помощью кнопки «Обзор»). Выберите «ОК» и перезапустите службу Apache. Убедитесь, что ваши изменения работали, ища процесс «httpd.exe» в диспетчере задач и проверяя, какое имя пользователя работает в этом процессе.
ссылка http://board.phpbuilder.com/board/showthread.php?t=10371870&page=2