Раньше я пытался загружать и просматривать файлы с другого диска, см. здесь а>.
Веб-файлы находились в папке htdocs на диске C:, но мне нужно было сохранить их в папку на диске D:. Я успешно выполнил это задание.
Обновив часть open_basedir в файле php.ini, я просто добавил дополнительное расширение следующим образом:
open_basedir = 'C:\inetPub;D:\CargoDocsPDFs;'
Затем я могу использовать сканирование PHP, чтобы убедиться, что я вижу папки на диске D: следующим образом:
<?php
$files1 = scandir('D:/CargoDocsPDFs');
var_dump($files1);
?>
Что дает мне следующее:
array(6) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(9) "000000000" [3]=> string(10) "0000000000" [4]=> string(10) "0001782136" [5]=> string(10) "0004670615" }
Вот тут и начинается моя новая проблема...
Нам дали новый диск для загрузки и просмотра файлов. Это сетевой диск, на котором больше места, чем на предыдущем диске D:.
Новый сетевой диск был помечен как диск S:. Поэтому я полагаю, что могу просто снова обновить файл php.ini:
open_basedir = 'C:\inetPub;S:\CargoDocsPDFs'
Затем я запускаю ту же функцию PHP scandir (с включенным отчетом об ошибках):
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//$files1 = scandir('D:/CargoDocsPDFs');
$files2 = scandir('S:/CargoDocsPDFs');
//var_dump($files1);
var_dump($files2);
?>
Но я получаю следующие ошибки:
Warning: scandir(): open_basedir restriction in effect. File(S:/CargoDocsPDFs) is not within the allowed path(s): (C:\inetPub;S:\CargoDocsPDFs) in C:\inetpub\mylocation\CargoReadiness\test.php on line 14
Warning: scandir(S:/CargoDocsPDFs): failed to open dir: Operation not permitted in C:\inetpub\mylocation\CargoReadiness\test.php on line 14
Warning: scandir(): (errno 1): Operation not permitted in C:\inetpub\mylocation\CargoReadiness\test.php on line 14
bool(false)
Почему я получаю эту новую найденную ошибку и как ее исправить?
Редактировать
Вот как устанавливаются привилегии на двух дисках ниже. Свойства слева — это диск, к которому я пытаюсь подключиться, то есть диск S: и сетевой диск. Свойства справа — это диск D:, и это диск, на который я могу успешно загружать и просматривать PDF-файлы.
Если вы заметите диск S:, все привилегии для всех отмечены, кроме специальных разрешений (полный доступ также не отмечен, но вы не видите его на рисунке). В то время как для диска D: проверяются только специальные права.
Я не уверен, связано ли это с моей ошибкой.
Редактировать 2
Мне стало известно, что устройство, к которому я пытался подключиться, является устройством NAS. Я не уверен, что это значит, и не знаю, связана ли текущая проблема с тем, почему я не могу подключиться к устройству.
$files2 = scandir('S:\CargoDocsPDFs');
? Я имею в виду, может быть, он проверяет прямую и обратную косую черту для сетевого диска? или попробуйте с глобом:$files2 = glob('S:\CargoDocsPDFs\*');
- person num8er   schedule 14.07.2018