У меня есть система, которая позволяет пользователю загружать PDF-файлы и сохранять имя файла в базе данных.Удалить файлы с сервера, имя которого нет в базе данных
Как я могу заставить этот скрипт работать, чтобы пользователь мог удалить все файлы с сервера, чье имя нет в моей базе данных?
Это то, что у меня на самом деле есть, но скрипт удаляет все файлы. Я не знаю, как это сделать.
<?php
include 'fimg.class.php';
require('../../../php/cone.php');
//header('Location: ../produccion.php');
$directory = "upload/";
//get all image files with a .jpg extension.
$images = glob($directory . "*");
foreach($images as $image)
{
$name = explode('_',$image);
$name = 'photos/' . $name[0];
$sql = mysql_query("SELECT imagen FROM r_alumnos");
if(mysql_num_rows($sql) == 0)
unlink($image);
}
?>
Пожалуйста [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте над использованием PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –
Используйте предложение WHERE. –
Что такое имя файла изображения в БД? полный путь или просто имя файла? Также убедитесь, что вы получаете только файлы 'jpg', используя' glob ($ directory. "* .jpg"); ' –