ColdFusion / Lucee Cffile Загрузка MakeUnique не совсем работает - PullRequest
0 голосов
/ 11 марта 2020

Вот базовая c загрузка файла с помощью makeUnique:

<cffile action = "upload"
    destination   = "#session.exploc#"
    fileField     = "form.theupload"
    mode          = '666'
    accept        = 'html'
    strict        = 'true'
    result        = 'ss'
    nameConflict  = "makeUnique">

Когда я загружаю файл с тем же именем, что и существующий файл, я могу подобрать новое имя следующим образом:

<cfset name    = ss.ServerFileName>

Я загрузил файл worl1. html несколько раз и получил имена worl, worl12, worl13 и др. c. Затем я вышел из приложения и вернулся чуть позже.

Когда я снова загрузил worl1. html Я получил сообщение о том, что файл worl12 уже существует. Очевидно, что makeUnique проверяет только один раз и не проверяет последующие версии этого файла.

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

Может кто-нибудь предложить способ решения этой проблемы просто без большого количества дополнительного кода. По крайней мере, мне нужно перехватить ошибку и дать пользователю сообщение, которое он может понять. Но лучше уловить проблему и решить ее. Мне нужно, чтобы он работал в ColdFusion 10, но было бы неплохо, если бы он работал и в Lucee.

...