может ли кто-нибудь мне посоветовать, как сделать проверку, чтобы определить, существует ли файл в базе данных или нет, прежде чем мы его загрузим?
Я хочу загрузить файл в базу данных, но перед его сохранением, я хочу проверить, что файл уже существует первым. если да, то не выполняйте выполнение вставки.
Я использовал эту ссылку для uplaoding файлов.
Большое спасибо.
Я не уверен, что это то, о чем вы просите, но вы использовали встроенную функцию PHP, file_exists (ABSOLUTE-PATH-TO-FILE)?
$exists = file_exists('myfile.doc'); if(!$exists) { // do your processing }
http://php.net/manual/en/function.file-exists.php
Если вы проверяете базу данных, просто запросите, какой столбец может содержать ваш файл, например:
SELECT * FROM my-table WHERE my-column = 'my-uploaded-file-name';
Судя по статье, с которой вы связались, файл считается «загруженным в базу данных», когда этот запрос был выполнен:
$query = "INSERT INTO upload (name, size, type, content ) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
Это означает, что проверить, был ли файл загружен в базу данных, было бы проверить, когда файл загружается, если в базе данных с тем же именем, файлом, типом и контентом уже есть запись, текущий.
Я полагаю, что такую запись можно было бы получить с помощью запроса, подобного этому:
select * from upload where name = '$fileName' and size = '$fileSize' and type = '$fileType' and content = '$content'
Если этот запрос возвращает результат, ваш файл, вероятно, уже «находится в базе данных».
BTW: Чтобы избежать проверки содержимого всего файла, решение может заключаться в том, чтобы добавить новый столбец в вашу таблицу загрузки, чтобы сохранить какой-то хэш файла (например, md5
и / или sha1
) .
BTW 2: вы должны немного прочитать о SQL Injections , прежде чем использовать код, представленный в этой статье, без его понимания: следующая часть кода, скопированная / вставленная из раздела « Код для загрузки файлов », довольно пугающая, например :
$id = $_GET['id']; $query = "SELECT name, type, size, content " . "FROM upload WHERE id = '$id'";