无法在Windows Server中复制或移动上载的文件

时间:2016-09-10 00:03:38

标签: php iis upload windows-server-2012-r2

(这个问题最初是在服务器故障中提出来的。我把它移到这里,因为我没有足够的信用来在那里开始赏金。)

我正在尝试让Windows Server 2012 R2主持webpage用户可以上传文件。

<!-- indexfile.html -->
<form action="uploadfile.php" method="post" enctype="multipart/form-data">
    Browse for File to Upload: <br>
    <input type="file" name="file" id="file" size="80"> <br>
    <input type="submit" id="u_button" name="u_button" value="Upload the file">
</form>


// uploadfile.php
<?php
  $file_result = "";
  if ($_FILES["file"]["error"] > 0)
  {
  $file_result .= "No File Uploaded or Invalid File ";
  $file_result .= "Error Code: " . $_FILES["file"]["error"] . "<br>";
  } else {
  $file_result .=
  "Upload: " . $_FILES["file"]["name"] . "<br>" .
  "Type: " . $_FILES["file"]["type"] . "<br>" .
  "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br>" .
  "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

  if (chmod("C:/inetpub/testaddbbacom/test", 0777)) 
     $file_result .= "chmod sucessful!<br>";
  else 
     $file_result .= "chomod NOT sucessful!<br>";

  copy($_FILES["file"]["tmp_name"], "C:/inetpub/testaddbbacom/test/" . $_FILES["file"]["tmp_name"]);

  $file_result .= "File Upload Successful!";

  echo $file_result;
  }
?>

问题是,文件可以上传到C:\Windows\Temp\,而copy不起作用。因此,C:\inetpub\testaddbbacom\test始终为空。我确实尝试通过chmod更改此文件夹的权限,但它确实不起作用。以下是两个文件夹权限的比较:

enter image description here

我也尝试了move_uploaded_file,但它也没有用,可能是由于相同的许可原因......

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

替换,

copy($_FILES["file"]["tmp_name"], "C:/inetpub/testaddbbacom/test/" . $_FILES["file"]["tmp_name"]);

以下,

move_uploaded_file($_FILES["file"]["tmp_name"], "C:/inetpub/testaddbbacom/test/" . $_FILES["file"]["name"]);

区别在于使用文件名,即$ _FILES [“file”] [“name”])而不是$ _FILES [“file”] [“tmp_name”])在目标路径中。