第23行的move_uploaded_file权限被拒绝

时间:2017-01-02 05:37:23

标签: php mysql

我尝试将图片上传到文件夹时遇到此错误,第23行上的move_uploaded_file权限被拒绝。应该是什么问题?我有下面的表格,逻辑和显示它的页面。谢谢!

  <?php
     include("../views/post_form.php");
     require("../includes/include.php");
     require("../includes/sess_n.php"); 

    if ($_SERVER["REQUEST_METHOD"]== "POST")
    {
        $usertext = $_POST["usertext"];
        $image = $_FILES['image']['name'];
        $talent =$_POST["talenttype"];

        if(empty($usertext) || empty($image)|| empty($talent))
        {
            die();
        }

         $id = $_SESSION["id"];

        $folder ="images/".basename($_FILES['image']['name']);

         move_uploaded_file($_FILES['image']['tmp_name'],$folder) ;

         $query = mysqli_query($link,"SELECT * FROM `upload` WHERE id = '$id'");

         $upload = mysqli_query($link,"INSERT INTO `upload` (description,image,talent,folder) VALUES('$usertext','$image','$talent','$folder ')");
    }





    ?>

要显示,我希望将照片保存到文件夹,而不是保存。我使用blob方法不插入数据库。

    <?php
         include("../views/feeds_form.php");
         require("../includes/include.php");
         require("../includes/sess_n.php");


           $query = mysqli_query($link,"SELECT  * FROM `upload` ");

            if ($query === false)
            {
                die();
            }

          echo '<table>';

           while ($run = mysqli_fetch_assoc($query)) 
           {
               echo '<tr>';
               echo '<td>';?> <img src =" <?php echo $run["image"]; ?>" height=100 width=100> <?php echo '<td>';
               echo '<td>'; echo $run["description"]; echo '<td>';  echo $run["folder"];echo '<td>';
               echo '</tr>';
           }

           echo '</table>';
     ?>  

这里的表格。

<?php

include("../public/header.php");
?>

<div> <title>post</title></div>
<style>
.form-inline
{
  text-align: center;
  margin-bottom: 50px;
}

</style>


<script type="text/javascript">
function validate(){

  var usertext = document.getElementById("usertext");
  var talent = document.getElementById("talenttype");
  var image = document.getElementById("image");


  if (usertext.value === "" && talent.value === "" && image.value ==="") 
  {
    alert("Field Must Not be Empty");
  }
}


</script>


<form class="form-inline"  method ="POST" action ="post.php" enctype="multipart/form-data" onsubmit= "return validate();">
  <div class="form-group">
    <label class="sr-only" for="exampleInputEmail3"> </label>
    <textarea class="form-control" id = "usertext" name ="usertext" rows="5" placeholder="Describe Person Here"></textarea> <br><hr>
    <label class="sr-only" for="exampleInputEmail3"></label><br>
      <div class="form-group">
    <label for="exampleInputPassword1"></label>
    <input type="file" class="form-control" id = "image" id="exampleInputPassword1" name="image" placeholder="image">
  </div> <br><br><br> <hr>
    <div class="form-group">
    <label for="exampleInputPassword1"></label>
    <input type="text" class="form-control" id = "talenttype" id="exampleInputPassword1" name = "talenttype" placeholder="Talent-Type"><br><br>
  </div> <hr>
  <div>
   <button type="submit"  name ="post" class="btn btn-default">Post</button><br>
   </div>
  </div>

</form>




<?php
include("../public/footer.php");
?>

2 个答案:

答案 0 :(得分:0)

问题是httpd进程所有者没有对images文件夹的写入权限。你可以:

  • 将该文件夹chown给PHP的用户并为所有者设置写入权限;或
  • 你做到了777:每个人都有读,写&amp;执行权限

全局写入权限也不是一个好主意

答案 1 :(得分:0)

我会说,

打开终端 cd到文档根目录

使用超级用户权限键入此命令

chmod 775 -R /

希望它有助于