2017-01-02 59 views
0

我收到此错误尝试将图像上传到文件夹,第23行拒绝move_uploaded_file权限。应该是什么问题?我有下面的表格,逻辑和显示它的页面。谢谢!第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"); 
?> 
+1

许可,意味着你的文件夹'images'没有写权限,以便其权限更改为077 –

+1

你是为[** SQL注入**](HTTPS大开:// www.owasp.org/index.php/SQL_Injection)。您需要使用准备好的语句,而不是将变量连接到查询中。请参阅[如何防止PHP中的SQL注入?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1)。 –

+0

你使用什么操作系统? – funsholaniyi

回答

0

问题在于httpd进程所有者没有映像文件夹的写入权限。您可以:

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

而且这不是一个好主意,做写权限全球

+0

这就是问题所在。谢谢 –

+0

如果有帮助请标记为答案 –

0

我会说,

打开终端 cd到文档根目录

键入此命令具有超级用户权限

chmod 775 -R/

希望它有助于否认