2015-05-07 2 views
0

Это скорее вопрос или вопрос с лучшей практикой, чем проблема. В настоящее время у меня есть два кода: один, который создает сущность, и один для загрузки файла с помощью Dropzone.js. Файлы загружаются до того, как пользователь создаст объект. Мне интересно, что именно является наилучшим способом прикрепления файлов в системе к сущности?Каков наилучший способ подключения нескольких файлов к сущности при создании?

Прямо сейчас, я отправляю «идентификатор файла», который является идентификатором GUID, а затем добавляет его в разделительную строку в форме сущностей. Когда объект создается, я выхожу и ищет этот файл и создаю ассоциацию. Это кажется довольно хакивым и не правильным, хотя ... Плюс я должен был бы создать какой-то процесс очистки, если пользователь прикрепляет файлы, но не создает сущность.

Предложения?

ответ

1

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

Вам нужно будет выполнить задание на очистку, которое выполняется так часто, чтобы удалить все старые экземпляры этих временных файлов для загрузки файлов, которые могли быть потеряны, когда пользователь не смог завершить процесс создания сущности.

+0

Хорошо, это имеет смысл. Итак, когда создается временный владелец, как бы вы привязали его к основному объекту? Возвратить значение и обновить скрытое поле в форме сущностей? Или это еще что-то хаки? Я знаю, что это, вероятно, сработает, но я хочу знать, что такое «лучшая практика» для этого сценария. – Calvin

+1

@Calvin: Я думаю, что передача значения и привязка его к вашей форме создания - отличный подход. Он связывает информацию с контекстом формы создания, которая представляет то, что вы планируете создать в долгосрочной перспективе. То, что вы * не хотите делать, это связать его с сеансом пользователя или чем-то еще. Возможно, временный объект должен иметь текущий идентификатор пользователя, связанный с ним, поэтому вы можете выполнить некоторые базовые проверки на стороне сервера, чтобы пользователи не пытались захватить загруженные файлы друг друга. – StriplingWarrior

Смежные вопросы