Подключенные сетевые диски
Я подключил сетевой диск к компьютеру в моей домашней сети. Теперь я пытаюсь получить к нему доступ через 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?
Обратите внимание, что подключенный диск существует, как я вижу, и я могу получить к нему доступ. Это также, похоже, не является проблемой с разрешениями, так как я предполагаю, что жаловался бы на это, ЕСЛИ он мог получить доступ к этому диску... правильно?
Спасибо всем за любую помощь
3 ответа
Пользовательские примечания к opendir() имеют следующее:
Я пытался получить доступ к сетевым дискам с помощью этой функции opendir. Я прочитал так много сообщений о том, что получить доступ к сетевому диску практически невозможно, и, наконец, я нашел ответ; Есть два шага для доступа к сетевому диску с помощью PHP на той же машине или другой машине.
в этом случае права пользователя, казалось, действительно были проблемой, которая может отличаться от ваших прав в зависимости от того, на каком пользовательском PHP / веб-сервере запущен.
Откройте MMC Services, перейдя в Пуск -> Выполнить (или используя окно поиска, если используется Windows 7) и набрав Services.msc и нажав Enter. Найдите сервис Apache. Никогда не использовавший WAMP, я понятия не имею, как он был назван. Надеюсь, он начинается со слова "Apache", и, следовательно, его не должно быть слишком сложно найти. Щелкните правой кнопкой мыши сервис и выберите "Свойства". Перейдите на вкладку "Вход в систему". Установите переключатель рядом с "Эта учетная запись:" и введите учетные данные для учетной записи пользователя, под которой вы хотите запустить Apache. Если это учетная запись сети / домена, используйте синтаксис "ДОМЕН \ пользователь" (или найдите учетную запись с помощью кнопки "Обзор"). Выберите OK и перезапустите службу Apache. Убедитесь, что ваши изменения работали, посмотрев процесс "httpd.exe" в диспетчере задач и проверив, под каким именем пользователя запущен процесс.
ссылка http://board.phpbuilder.com/board/showthread.php?t=10371870&page=2
Просто, используйте: "\\\\server\\dir\\subfolder"
как путь. убедитесь, что вы можете получить доступ к "серверу".
работает для меня.
$arquivo = "\\\\server\\dir\\subfolder\\file.txt";
echo is_file($arquivo); //print 1.