Advertisement
gulnyr

Untitled

May 14th, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. // Модификация с бд
  5.  
  6. mysql_connect('localhost', 'root', '');
  7. mysql_select_db('phpt');
  8. $imagen = $_FILES[$formField];
  9. $image_filename = mysql_real_escape_string($imagen['tmp_name']);
  10. $image_info = getimagesize($newFileName);
  11. $image_mime_type = mysql_real_escape_string($image_info['mime']);
  12. $image_size = mysql_real_escape_string($imagen['size']);
  13. $image_data = file_get_contents($imagen['tmp_name']);
  14. $insert_image_sql = "
  15. INSERT INTO images
  16. (filename, mime_type, file_size, image_data)
  17. VALUES (
  18. mysql_real_escape_string($image_filename),
  19. mysql_real_escape_string($image_mime_type),
  20. mysql_real_escape_string($image_size),
  21. mysql_real_escape_string($image_data)
  22. )
  23. ";
  24.  
  25.  
  26. mysql_query($insert_image_sql);
  27.  
  28.  
  29.  
  30.  
  31.  
  32. // 8) превратим в функцию
  33. function getImagesByDir($dir)
  34. {
  35. //4) получить список файлов в папке scandir
  36. $files = scandir($dir);
  37. //5) создадим пустой массив, в которую с перебором будем складывать подходящие нам файлы
  38. $ret = [];
  39. //6) складываем на ret подходящие нам файлы
  40. foreach ($files as $file) {
  41. // 7) сделаем фильтрацию, отсеиваем . и ..
  42. if ('.' == $file || /*|| - это или*/ '..' == $file) {
  43. continue;
  44. }
  45. //10) нужно подобрать только файлы, там может быть подпапка, а они нам не нуэжны
  46. //если не файл
  47. if(!is_file($dir . '/' . $file)) {
  48. continue;
  49. }
  50. //иначе 7 раздел добавим в пустой массив
  51. $ret[] = $file;
  52. }
  53. // массив ret все возвращает
  54. return $ret;
  55. }
  56.  
  57.  
  58. //2) папка, где мы хотим получить список
  59. //3) Если добавить realpath(), то путь будет переделан так, как нужно, для проверки на существование
  60. // 8) папка
  61. $dir = __DIR__ . '/img/';
  62. // 9) список файлов из него
  63. $images = getImagesByDir($dir);
  64. ?>
  65.  
  66. <!--1) форма загрузки фото-->
  67. <form action="/upload.php" method="post" enctype="multipart/form-data">
  68. <input type="file" name="image">
  69. <input type="submit">
  70. </form>
  71.  
  72. <?php
  73. //10) выведем изображение
  74. ?>
  75. <?php foreach($images as $image): ?>
  76. <?php // 11) выведем собственно говоря имя файла ?>
  77. <?php // 12) изменим размер, а то слишком большой ?>
  78. <img src="/img/<?php echo $image; ?>" style="max-width:300px;" /><br><br>
  79. <?php endforeach; ?>
  80.  
  81.  
  82. <!--Обработчик-->
  83.  
  84.  
  85. <?php
  86.  
  87.  
  88. //2) делаем замену подмассива image
  89. $formField = 'image';
  90. //1) если массив файл не пустой
  91. if(!empty($_FILES)) {
  92. //3) если в подмассиве
  93. if($_FILES[$formField]) {
  94. //4) делаем для подмассива error. Если error == 0, то мы можем начать загрузку файла
  95. //5) для подмассива size. Если размер загруженного файла больше 0, то делаем загрузку
  96. if(0 == $_FILES[$formField]['error'] && $_FILES[$formField]['size'] > 0) {
  97. //7) создадим постоянное место (текущая папка, из него сделаем папку /img/ и ставим имя файла)
  98. // 8) добавим basename, для взятия из длинной пути его имя файла,
  99. // для перестраховки, т.к. может прийти не имя файла, а папка пользователя
  100. $newFileName = __DIR__ . '/img/' . basename($_FILES[$formField]['name']);
  101. //6) Перемещаем загруженный файл в новое место (постоянное место)
  102. move_uploaded_file($imagen['tmp_name'], $newFileName);
  103. }
  104. }
  105. }
  106.  
  107. header('Location: /index.php');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement