Php 为移动\u上传的\u文件实现正确的权限

Php 为移动\u上传的\u文件实现正确的权限,php,iis,upload,permissions,Php,Iis,Upload,Permissions,我正在运行一个php/IIS8网站 我按照这里的指示: 我的用户可以将文件上载到我的服务器上 但是,当我调用函数move\u upload\u file时: $imagename = $_FILES['Filedata']['name']; $source = $_FILES['Filedata']['tmp_name']; $target = "../ResLife/uploadimages/".$imagename; move_uploade

我正在运行一个php/IIS8网站

我按照这里的指示:

我的用户可以将文件上载到我的服务器上

但是,当我调用函数move\u upload\u file时:

      $imagename = $_FILES['Filedata']['name'];
      $source = $_FILES['Filedata']['tmp_name'];
      $target = "../ResLife/uploadimages/".$imagename;
      move_uploaded_file($source, $target);
什么也没发生。它不会移动文件


我做错了什么?如何设置适当的权限以执行此功能?

您需要确保已设置为运行IIS的用户对相关文件夹具有写入权限。如果我没记错的话,通常是
iis\u用户
NETWORK\u服务
。@gavin非常感谢!我确实有权上传。但是,我无法理解前几行的含义:$imagename=$\u FILES['Filedata']['name'];--是什么;filedata??不要这样做。像这样使用用户提供的
['name']
会使您的服务器完全受到远程攻击,从而允许恶意用户在您服务器上的任何位置涂鸦文件。@MarcB非常感谢。你能给我解释一下这行代码到底是做什么的吗?
['name']
是由用户提供的,所以想象一下他们黑客上传的文件名是
。/../../../../../etc/passwd
。这并不是说它能按原样工作,而是让你知道会发生什么。您基本上是在给用户提供机会,让他们能够准确地指定要在服务器上写入文件的位置。