Вход Регистрация
* Manager

Хранение изображений в mysql

  1. <?php
  2. /*** хранение изображений в базе данных **
  3. *
  4. //структура таблицы
  5.  
  6. CREATE TABLE image (
  7. id_image int(11) NOT NULL auto_increment,
  8. name tinytext NOT NULL,
  9. content longblob NOT NULL,
  10. PRIMARY KEY (id_image)
  11. ) TYPE=MyISAM;
  12.  
  13. */
  14. ?>
  15. <form enctype='multipart/form-data' method=post>
  16. <input type="file" name="image"><br>
  17. <input type=submit value='Загрузить'>
  18. </form>
  19. <?php
  20. // Число изображений на странице
  21. $pnumber = 3;
  22.  
  23. // Устанавливаем соединение с базой данных
  24.  
  25. // Сетевой адрес MySQL-сервера
  26. $dblocation = "localhost";
  27. // Имя базы данных
  28. $dbname = "book";
  29. // Пользователь
  30. $dbuser = "root";
  31. // Его пароль
  32. $dbpasswd = "";
  33. // Устанавливаем соединение с базой данных
  34. $dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd);
  35. if (!$dbcnx) exit ("К сожалению, не доступен сервер MySQL : ".mysql_error());
  36. // Выбираем базу данных
  37. if (!@mysql_select_db($dbname,$dbcnx)) exit("К сожалению, не доступна база данных : ".mysql_error());
  38.  
  39. // Обработчик HTML-формы
  40. if(!empty($_FILES))
  41. {
  42. // Проверяем является ли переданный файл картинкой
  43. if(substr($_FILES['image']['type'],0,5) == 'image')
  44. {
  45. // Читаем содержимое файла
  46. $content = file_get_contents($_FILES['image']['tmp_name']);
  47. // Уничтожаем файл во временной директории
  48. unlink($_FILES['image']['tmp_name']);
  49.  
  50. // Экранируем спец-символы в бинарном содержимом файла
  51. $content = mysql_escape_string($content);
  52.  
  53. // Формируем запрос на добавление файла в таблицу
  54. $query = "INSERT INTO image VALUES(NULL, '".$_FILES['image']['name']."', '$content')";
  55. if(mysql_query($query))
  56. {
  57. // Осуществляем автоматическую перезагрузку страницы
  58. echo "<HTML><HEAD>
  59. <META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'>
  60. </HEAD></HTML>";
  61. } else exit(mysql_error());
  62. }
  63. }
  64. ?>
  65.  
  66. Для вывода файла можно воспользоваться таким скриптом:
  67. <?php
  68. // Устанавливаем соединение с базой данных
  69. require_once("config.php");
  70.  
  71. // Провряем передан ли параметр id_image
  72. // и является ли он целым числом, чтобы
  73. // предотвратить SQL-инъекцию
  74. if(!preg_match("|^[\d]+$|",$_GET['id_image']))
  75. {
  76. exit("Недопустимый формат URL-запроса");
  77. }
  78.  
  79. // Извлекаем файл из базы данных
  80. $query = "SELECT * FROM image
  81. WHERE id_image = $_GET[id_image]";
  82. $img = mysql_query($query);
  83. if(!$img) exit(mysql_error());
  84. $image = mysql_fetch_array($img);
  85.  
  86. // Отсылаем заголовки на загрузку файла
  87. header("Content-type: image/*");
  88. // Отправляем файл пользователю
  89. echo $image['content'];
  90. ?>
» Описание: Код прокомментирован.

Если будете использовать данный код, ВНИМАТЕЛЬНО читайте комментарии, там много нужно информации хранится.
» Время добавления: 10 Марта 2016 в 20:45
» Посмотров: 981
» textarea
» Рейтинг: [+0 | -0]
Комментарии [0]
Онлайн: 4
Реклама
Игры между пользователями