用于将文件上传到映射网络驱动器的php脚本无效。以下是php脚本:
$newfilename = "something.wav";
$path = 'Y:\\uploaded\\'.$newfilename;
copy($_FILES['ufile']['tmp_name'], $path);
我还检查了网络驱动器文件夹的权限。我有Y驱动器映射到上传文件夹中的网络驱动器(10.4.4.32)d驱动器。它拥有完全控制权限。我尝试了以下网络驱动路径:
但是,它适用于本地驱动器,如:
显示的错误: 警告:复制(\ 10.4.4.32 \ d $ \ uploaded \ test.wav):无法打开流:第107行的C:\ inetpub \ wwwroot \ myapp \ upload.php中的权限被拒绝 < / p>
我允许对EVERYONE用户上传文件夹的属性进行完全控制。是否还有其他许可,我应该修复。
答案 0 :(得分:0)
首先,检查copy()
是否返回false。这表明确实存在错误。
然后,启用php.ini中的track_errors
指令,以及display_errors
和error_reporting
到最高级别。
激活track_errors
后(重新启动网络服务器),请在复制后使用以下行:
var_dump($php_errormsg, error_get_last());
这可以让你更好地了解这个问题。
另外请确保如果您正在使用safe_mode
和open_basedir
,则允许您移动的路径。
答案 1 :(得分:0)
网络驱动器可能无法用于apache和php,因此请使用此$ path =“\\ machine-name \ share_path \”;
在BOTH计算机上设置用户帐户,例如user:ApacheUser
转到服务并单击Apache,并使用刚刚创建的帐户登录(第二个选项卡)源计算机的Apache服务
重启apache服务
然后它现在应该工作