以前,我曾尝试从另一个驱动器see here上传和查看文件。
Web文件位于C:驱动器上的htdocs文件夹中,但是我需要能够保存到D:驱动器上的文件夹中。我成功完成了这项任务。
通过更新php.ini文件中的open_basedir部分,我只是添加了如下附加扩展名:
open_basedir = 'C:\inetPub;D:\CargoDocsPDFs;'
然后,我可以使用PHP的scandir来确保可以看到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)
为什么会收到这个新发现的错误,该如何解决?
以下是在以下2个驱动器中设置特权的方式。左侧的属性是我要连接的驱动器,即S:驱动器和网络驱动器。右侧的属性是D:驱动器,并且是我可以成功上传和查看PDF的驱动器。
如果您会注意到S:驱动器,则除特殊权限外,所有人的特权都已选中(完全控制也未选中,但您无法在图片中看到)。而D:驱动器,唯一检查的特权是“特殊权限”。
我不确定这是否与我的错误有关。
据我了解,我一直试图连接的设备是NAS设备。我不确定这意味着什么,也不知道当前的问题是否与为什么我无法连接到设备有关。