【问题标题】:upload file to network drive in php在php中将文件上传到网络驱动器
【发布时间】:2012-06-17 11:27:23
【问题描述】:

用于将文件上传到映射网络驱动器的 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:\上传\ 该文件已上传到本地驱动器,但无法上传到网络驱动器。我使用 php 5.3 和 IIS 7 进行应用程序

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

我允许每个用户对上传文件夹的属性进行完全控制。有没有其他权限,我应该修复。

【问题讨论】:

  • 您是否已经尝试过 move_uploaded_file()?
  • 是的,我刚试过,不行..
  • “它不起作用” - 很好地解释了您的问题,我正在联系 Charles Xavier 帮助我弄清楚“不起作用”对您意味着什么。
  • 我解释说它是上传到本地驱动器而不是在网络驱动器中,并且文件未上传时没有显示任何错误......

标签: php file-upload iis-7 network-drive


【解决方案1】:

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

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

var_dump($php_errormsg, error_get_last());

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


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

【讨论】:

  • 显示警告:move_uploaded_file(): Unable to move 'C:\Windows\Temp\php2693.tmp' to '\\10.4.4.32\d$\uploaded\test.wav' in C: \inetpub\wwwroot\myapp\upload.php 在第 104 行 string(145) "move_uploaded_file(): Unable to move 'C:\Windows\Temp\php2693.tmp' to '\\10.4.4.32\d$\uploaded\ test.wav'" array(4) { ["type"]=> int(2) ["message"]=> string(145) "move_uploaded_file(): 无法移动 'C:\Windows\Temp\php2693. tmp' 到 '\\10.4.4.32\d$\uploaded\test.wav'" ["file"]=> string(47) "C:\inetpub\wwwroot\myapp\upload.php" ["line"] => int(104) }
  • 您确定文件夹名称是d$,其中有$
【解决方案2】:

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

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

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

重启apache服务

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

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多