Как удалить изображение в базе данных также в исходной папке - PullRequest
0 голосов
/ 23 февраля 2019

Может кто-нибудь помочь мне, как удалить изображение внутри папки?это мой код для удаления изображения внутри базы данных и его работы

<?php
require('connection/dbconn.php');
    if(ISSET($_POST['id'])){

        foreach ($_POST['id'] as $id){
            $dbconn->query("delete from `uploading` where `id` = '$id'");
    }    
}
?>

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019

Чтобы удалить изображение с сервера, вам нужно будет передать переменную imageName в ваш PHP-скрипт, а затем вы можете удалить файл, используя встроенную функцию unlink():

$path = //your path to the upload images

unlink( $path . $imageName);
unlink( $path . 'Thumbnails/' . $imageName); //if also have thumbnail

Вы взаимодействуете с файловой системой вашего сервера, вам нужно убедиться и очистить переменные (не позволяйте кому-либо использовать ../../../ для доступа к нежелательным частям вашей файловой системы).

$imageName= str_replace( array( '..', '/', '\\', ':' ), '', $imageName);

Вы должны очистить переменные, чтобы убедиться, что в имени файла экранированы символы .. в противном случае вы можете получить что-то вроде "../../../public/index.php

Обновить:

Вам потребуется сохранить имя изображения в базе данных и создать скрытое поле в форме удаления. При удалении получите имя изображения как $image = $_POST['image'];, а затем следуйте unlink процесс.

0 голосов
/ 23 февраля 2019
  1. Выберите имя изображения из базы данных или отправьте имя изображения с помощью id
  2. Используйте unlink функцию для удаления файла изображения
unlink('/path-to-upload-dir/' . $_POST['imagename']);
0 голосов
/ 23 февраля 2019

Для удаления файла с помощью PHP, вы должны использовать unlink function .

Но вы также должны указать путь к файлу, который в вашем случае должен состоять из пути загрузки каталогаи fileID (который $_POST['id']?)

/**
 * Do user permissions check for this operation before going further
 */
foreach ($_POST['id'] as $fileId) {
    $filePath = "/path/to/upload/dir/$fileId";
    if (file_exists($filePath)) {
        unlink($filePath);
    }
}

Не забудьте проверить безопасность и целостность данных.Например, у пользователя, отправившего этот запрос на удаление, достаточно прав.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...