Vichuploaderbundle: Управление перезаписью файлов, если уже существует файл с таким же именем

Созданный на 28 мая 2018  ·  3Комментарии  ·  Источник: dustin10/VichUploaderBundle

| Q | А
| ------------ | -----
| Версия Symfony | 3.3. *
| Версия пакета VichUploader | 1.6

Вопрос поддержки

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

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

Я пытаюсь сделать это через Namers, но не думаю, что есть способ.

Практически:
1) пользователь загружает файл с тем же именем, что и другой файл, уже загруженный и находящийся на сервере.
2) при загрузке оригинальное имя меняется на случайный идентификатор, но все в Back-End. (например, используя Symfony UploadedFile)
3) пользователь увидит имя файла, равное загруженному, не заметив никакой разницы.

Возможно?
Спасибо вам всем.

Question

Самый полезный комментарий

Спасибо @garak , я решил использовать как uniqid (), сохраняя его в столбце slug, так и исходное имя, чтобы показать его пользователю. (который в этот момент ничего не заметит)
Закрываю этот выпуск, хорошая работа!

Все 3 Комментарий

OrignameNamer уже предоставляет такую ​​возможность: он добавляет uniqid() к исходному имени клиента.

Спасибо @garak , я решил использовать как uniqid (), сохраняя его в столбце slug, так и исходное имя, чтобы показать его пользователю. (который в этот момент ничего не заметит)
Закрываю этот выпуск, хорошая работа!

File Namer - решение для этого

На данный момент доступно несколько наименований:

  • Vich \ UploaderBundle \ Naming \ UniqidNamer
  • Vich \ UploaderBundle \ NamingOrignameNamer
  • Vich \ UploaderBundle \ Naming \ PropertyNamer
  • Vich \ UploaderBundle \ Naming \ HashNamer
  • Vich \ UploaderBundle \ Naming \ Base64Namer
  • Vich \ UploaderBundle \ Naming \ SmartUniqueNamer
  • Vich \ UploaderBundle \ Naming \ SlugNamer

Я лично использую HashNamer с MD5:

        prodimage:
            uri_prefix: /prodimages
            upload_destination: '%kernel.project_dir%/public/prodimages'
            namer:
                service: Vich\UploaderBundle\Naming\HashNamer
                options: { algorithm: 'md5', length: 30 }

https://github.com/dustin10/VichUploaderBundle/blob/master/docs/namers.md

Была ли эта страница полезной?
0 / 5 - 0 рейтинги