取消链接 - 权限被拒绝。怎么解决?

问题描述 投票:1回答:2

我想使用unlink删除文件但我收到一条警告消息,

Warning: unlink(uploads/487001/): Permission denied in

当我检查文件夹时,文件已成功删除。以下是我所做的代码,

Uploads.php

<?php
if (isset($_FILES['mc'])) {
    $file = $sno . "-" . date("Ymd") . "-" . $_FILES['mc']['name'];
    $file_loc = $_FILES['mc']['tmp_name'];
    $file_size = $_FILES['mc']['size'];
    $folder = "uploads/" . $sno . "/";
    $final_file = str_replace(' ', '-', strtolower($file));

    if ($file_size <= 0) {
        $error= "<span class=\"w3-text-red\">Select a file to upload</span>";
    }

    if (!is_dir($folder)) {
        mkdir($folder, 0777, true);
    }

    if (move_uploaded_file($file_location, $folder . $final_file)) {
        $upload = true; 
    }
}

Delete.php

<?php 
if(isset($_POST['delete'])){

    if(empty($_POST['checkbox'])){
        $error = "<span class=\"w3-container w3-text-red\">No data selected</span><p/>";
    } elseif(isset($_POST['checkbox'])){
        $checkbox = $_POST['checkbox'];
        $files = $_POST['file'];
        $path = 'uploads/' . $_SESSION['staff_no'] . '/';

        foreach ($files as $file) {
            if (file_exists($path.$file)) {
                chmod($path.$file, 0777);
                unlink($path.$file);
            } 
        }
    }

// Other validations & Delete row from database

这是文件结构,

Project Folder > Uploads > user_id > files

我可以知道错误是什么吗?

php file-upload unlink
2个回答
1
投票

$ POST ['file']持有什么?如果它是一个数组,那么也检查空白/空值。如果$ file为空,file_exists()将返回true,但是您的路径将以uploads / 487001 /结束,并且您将收到该警告。


0
投票

使用这种方式,它将从Server和Database中删除文件。

if(isset($_POST['delete'])){

    if($file_path) {
         chmod($file_path, 0777);
         unlink($file_path);
       $query = "DELETE FROM medias WHERE mediaId = '".$_POST["delete"]."'";
       $statement= $db->delete($query);   
     }
}
© www.soinside.com 2019 - 2024. All rights reserved.