Использование PHP-fopen в Windows на сетевом диске - PullRequest
0 голосов
/ 31 января 2012

У меня есть следующий код:

$file_name = "1234";
$filename = "L:\\videoette_converter\\batch_files\\".$file_name.'.bat';
if (!$handle = fopen($filename, 'a')) {
     echo "Cannot open file ($filename)";
     exit;
}

Я получаю следующую ошибку из этого кода:

Предупреждение: fopen (L: \ videoette_converter \ batch_files \ 1234.bat) [function.fopen]: не удалось открыть поток: нет такого файла или каталога в C: \ wamp \ www \ videoette_converter \ index.php в строке 47

и строке отладки из моего php

Невозможно открыть файл (L: \ videoette_converter \ batch_files \ 1234.bat)

Однако папка L:\videoette_converter\batch_files существует как подключенный диск, и я дал "Все "полные разрешения.В чем может быть проблема?

1 Ответ

0 голосов
/ 28 октября 2012

Вы уверены, что в пути нет контроллера домена?

Когда компьютер с Windows, обслуживающий файлы, находится в домене Active Directory:

1) Компьютер, на котором работает WAMP, должен находиться в том же домене.

2) У учетной записи, используемой для запуска службы Apache на вашем компьютере WAMP, должны быть как минимум права на чтение общего ресурса, к которому вы хотите получить доступ. Вместо того, чтобы запускать службу Apache как «Локальная система» или «wampapache», вы должны указать свою учетную запись пользователя домена. (П.С .: Мне нравится XAMPP, а не Wamp для такого рода разработки, но это, вероятно, просто личное предпочтение)

Также я думаю, что было бы лучше, если бы вы использовали путь UNC вместо буквы диска. У меня всегда так получалось. Вам не нужно использовать экранированные обратные слэши, вы можете заменить их на одиночные передние:

// yourwinserver / имя_общего_ресурса / путь / к / file.bat

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