首页 文章

对move_uploaded_file的权限被拒绝到IIS中的另一台服务器

提问于
浏览
3

我有一个在IIS上运行的PHP Web应用程序,它允许用户从一个简单的html表单上传文件 . 然后将上载的文件移动到另一台服务器上的文件夹中 . 这在Apache上运行正常,但在IIS上失败并出现错误:

function ['move_uploaded_file']无法打开流:权限被拒绝...

我已经检查了目录的所有权限 . 如果我通过命令行运行一个简单的PHP脚本将文件从服务器复制到另一台服务器上的文件夹中,它可以正常工作,所以我怀疑问题出在IIS上 .

if (move_uploaded_file($_FILES ["file"] ["tmp_name"], "\\\\000.00.0.00\\tia\\web\\upload\\" .$_FILES["file"]["name"])) {

2 回答

  • 1

    从我在您的评论中看到的内容,您使用 \\ 前缀网络共享作为 move_uploaded_file() 操作的目标 .

    我打赌啤酒不允许PHP访问该共享 . 请记住,PHP运行IIS的权限!

    首先尝试保存到本地的全局可写路径 . 如果可行,您知道必须修复共享的权限 .

  • 1

    已经涵盖了here . 引用原因在这里:

    您已将目标目录映射到共享,例如\ server2 \ files . 这些映射仅适用于当前用户(例如,管理员帐户),而不适用于您的php可能正在运行的IUSR帐户(假设IIS) . 解决方案,不要使用映射,而是使用完整的'unc'路径名,即'\ server \ share \ folder \ file.ext',还要记住IUSR帐户需要访问这些共享/文件夹/文件

相关问题