Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2018, 10:43
Новичок на форуме
Отправить личное сообщение для kapellan Посмотреть профиль Найти все сообщения от kapellan
 
Регистрация: 12.12.2018
Сообщений: 6

Сообщение с вложением(где хранить имя)
Приветствую.
Помогите советом. Сильно не пинайте я только ючусь.
Набросал очень простой сайтик на meteorjs. Создал страницу на которой пользователь добавляет комментарий и подгружает изображения. Изображения подгружаются по кнопке upload после чего пользователь нажимает кнопку Send чем добавляет запись в базу данных. Сейчас загруженное изображение генерирует на странице текстовое поле с именем, которое после нажатия считывается и отправляется в базу данных. До такой идеи дошел сам и по этой причине кажется что есть более грамотные решения (кроме того для загруженного файла генерирую уникальное имя которое будет отличатся от того что грузил пользователь и пользователь может этого не понять). В идеале хотелось бы избавится от поля с именем.
Помогите советом как это грамотно реализуют
Заранее благодарен всем кто откликнется.

Последний раз редактировалось kapellan, 12.12.2018 в 10:49.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2018, 10:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kapellan
Сейчас загруженное изображение генерирует на странице текстовое поле с именем, которое после нажатия считывается и отправляется в базу данных.
Зачем?

Сообщение от kapellan
для загруженного файла генерирую уникальное имя
Это верно, так как пользователь А может загрузить файл 1.jpg и нет гарантии, что с таким именем файлы более никто не загрузит. При этом пользователю все равно что там за имя получит файл. Другое дело если пользователь захочет подписать свой файл - "Это я ...". Вот подписи к файлам и хранят в базе.
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2018, 11:05
Новичок на форуме
Отправить личное сообщение для kapellan Посмотреть профиль Найти все сообщения от kapellan
 
Регистрация: 12.12.2018
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
Зачем?
Для того чтоб когда пользователь нажимает кнопку отправить сообщение, вычитать новое имя и добавить в базу данных .

Вот то что сейчас получается заносится в базу по кнопке добавить https://clip2net.com/clip/m562571/28....png?nocache=1

Последний раз редактировалось kapellan, 12.12.2018 в 11:11.
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2018, 11:07
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

kapellan, input[file] и так отправляет имя файла на сервер.
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2018, 11:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kapellan
вычитать имя и добавить в базу данных.
А оно нужно на клиенте? Имя уникальное должно формироваться на сервере при получении изображения, а уж хранить его в базе или нет, тут нет однозначного утверждения. Например, если база это MySQL, то при удалении записи и хранения имени изображения в ней, прежде нужно получить имя изображения, удалить его и только после успешного удаления можно удалять саму запись. Неудобно да? Но можно и не хранить имя файла в базе и в качестве имени использовать ID записи, тогда обращаться за именем в базу при удалении записей не потребуется. В общем все зависит от логики - для чего изображение, как связано с записью и т.д. и т.п.

А для пользователя это имя вообще не нужно, если так интересно, то может его посмотреть в src изображения на странице.
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2018, 11:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Nexus, нельзя использовать имена файлов для хранения.
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2018, 11:19
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

laimas, я не про хранение, а про необходимость (точнее её отсутствие) передачи имени файла отдельным полем.
Ответить с цитированием
  #8 (permalink)  
Старый 12.12.2018, 11:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nexus
передачи имени файла отдельным полем
Так речь идет о формировании имени для хранения, что делать на клиенте совсем не требуется.
Ответить с цитированием
  #9 (permalink)  
Старый 12.12.2018, 11:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kapellan
Вот то что сейчас получается заносится в базу
Не стоит, не знаю что за язык на сервере, но если РНР, тогда уж md5(uniqid()).
Ответить с цитированием
  #10 (permalink)  
Старый 12.12.2018, 11:28
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

laimas,
Сообщение от kapellan
Для того чтоб когда пользователь нажимает кнопку отправить сообщение, вычитать новое имя и добавить в базу данных .
Я про это писал. Как я понял, автор перед отправкой файла на сервер получает имя файла, записывает его в поле и только после отправляет форму.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить сообщение fear111 Общие вопросы Javascript 9 25.03.2016 20:40
Нужно всплывающее сообщение для сайта bursnabby Работа 4 30.05.2015 20:21
Система всплывающих сообщений ruslan_mart Ваши сайты и скрипты 32 27.05.2015 21:28
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
как правильно передвать имя radiobutton в функции boris2000 Элементы интерфейса 2 03.08.2010 21:16