日期:2014-05-17  浏览次数:20702 次

PHP上传图片出错:没有权限
本帖最后由 wxg694175346 于 2013-02-03 00:32:23 编辑
PHP上传文件的小案例:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>


反应是:

Warning: move_uploaded_file(upload/12.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied inupload_file.php on line24

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/saetmp/928/xququer/1359821561_2429732845/phppSXyZ6' to 'upload/12.jpg' inupload_file.php on line24


google了一下应该是没有权限。。。linux下可以用chmod 777 filename的方法,但是windows下面怎么办?右击将upload文件夹的只读的选项去掉之后,关闭窗口再看属性还是只读。

怎么办。。(我是用的SAE,新浪云服务器,不是本地搭建的Apache)

------解决方案--------------------
windows下右键->属性->安全->编辑->添加everyone->底下需要的权限打钩
------解决方案--------------------
你设置了 upload_tmp_dir 吗?
如果没有设置的话,将会使用操作系统的临时目录,而对于 XP 以上(不含XP)的操作系统这个目录是不对匿名用户开放的