2

用于将文件上传到映射网络驱动器的 php 脚本不起作用。以下是php脚本:

$newfilename = "something.wav";
$path  = 'Y:\\uploaded\\'.$newfilename;
copy($_FILES['ufile']['tmp_name'], $path);

我还检查了网络驱动器文件夹的权限。我已将 Y 驱动器映射到上传文件夹中的网络驱动器(10.4.4.32)d 驱动器。它具有完全控制权限。我尝试了以下网络驱动器路径:

  • Y:\已上传\
  • \\10.4.4.32\d$\已上传\
  • move_uploaded_file($_FILES['ufile']['tmp_name'], $path);

但是,它适用于本地驱动器,例如:

  • d:\uploaded\ 文件已上传到本地驱动器,但无法上传到网络驱动器。我已将 php 5.3 和 IIS 7 用于应用程序

显示的错误: 警告:复制(\10.4.4.32\d$\uploaded\test.wav):无法打开流:第 107 行 C:\inetpub\wwwroot\myapp\upload.php 中的权限被拒绝

我允许每个用户对上传文件夹的属性进行完全控制。是否有任何其他许可,我应该修复。

4

2 回答 2

0

网络驱动器可能不适用于 apache 和 php ,所以使用这个 $path = "\\machine-name\share_path\";

在两台计算机上设置用户帐户,例如用户:ApacheUser

进入 services 并点击 Apache ,并使用刚刚创建的帐户登录(第二个选项卡)源计算机的 Apache 服务

重启apache服务

那么它现在应该可以工作了

于 2013-09-15T12:16:30.943 回答
0

首先,检查是否copy()返回 false。这表明确实存在错误。

然后,在您的 php.ini 中启用该指令,track_errors以及最高级别。激活时(并且您重新启动了网络服务器),在复制后使用以下行:display_errorserror_reportingtrack_errors

var_dump($php_errormsg, error_get_last());

这应该会给你一个关于问题的更好的提示。


还要确保如果您使用safe_modeand open_basedir,则允许您移动到的路径。

于 2012-06-15T05:38:02.773 回答