Создание ссылки на сохраненный файл на сервере в MySQL

0

Это должно быть легко сделать, но я понятия не имею даже после нескольких дней поиска.

Я создал простую веб-форму с помощью PHP, которая позволяет пользователям загружать файлы изображений на сервер, а также информацию, например. дата, имя файла (уникальное, автоматически переименованное при загрузке) и т.д. вводятся в таблицу MySQL create.

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

Цените, если кто-нибудь может мне помочь в этом. Спасибо заранее.

  • 0
    Я не понимаю ваш вопрос. Вы знаете уникальное имя файла, и вы знаете, как получить его из БД. Что ты не можешь сделать?
  • 0
    Возможно, я не ясно выразил свою точку зрения. Мне удается загрузить файл на сервер и ввести соответствующую информацию в таблицу MySQL. Что я не могу сделать, так это позволить пользователю щелкнуть имя файла в таблице MySQL и получить / открыть загруженный файл.
Теги:

1 ответ

2
Лучший ответ

Предполагая, что ваша таблица содержит поля id, type (тип MIME) и data (двоичные данные), это PHP скрипт для этого:

<?php //dispimg.php
//example usage: dispimage.php?id=123
$my = new MySQLi('localhost', 'user', 'pass', 'db');
$sql = sprintf('SELECT type, data FROM table WHERE id="%s" LIMIT 1', $my->real_escape_string($id));
if(!$queryResult=$my->query($sql)){
   //query failed, log mysqli_error() somewhere
}
elseif(!$queryResult->num_rows){
   header('HTTP/1.1 404 Not Found');
   echo 'File not found';
}
else($res=$queryResult->fetch_assoc()){
   //optionally, use application/octet-stream instead of a field from database
   header('Content-Type: '.$res['type']));
   // uncomment following line if you want to present the file as download
   //header('Content-Disposition: attachment;filename=download');
   echo $res['data'];
}
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню