Функция сценария для файла загружает в ColdFusion 9

Существует ли cfscript эквивалент для cffile действия = "загрузка" в ColdFusion 9? При просмотре документов, там, кажется, не.

[Обновление] Это было добавлено в 9.0.1 обновлениях http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSd160b5fdf5100e8f36f73035129d9e70a92-8000.html

5
задан Ryan McIlmoyl 8 November 2010 в 16:47
поделиться

2 ответа

Вы можете легко абстрагироваться от него с помощью пользовательской функции.

<cffunction name="fileuploader">
    <cfargument name="formfield" required="yes" hint="form field that contains the uploaded file">
    <cfargument name="dest" required="yes" hint="folder to save file. relative to web root">
    <cfargument name="conflict" required="no" type="string" default="MakeUnique">
    <cfargument name="mimeTypesList" required="no" type="string" hint="mime types allowed to be uploaded" default="image/jpg,image/jpeg,image/gif,image/png,application/pdf,application/excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,image/pjpeg">

    <cffile action="upload" fileField="#arguments.formField#" destination="#arguments.dest#" accept="#arguments.mimeTypesList#" nameConflict="#arguments.conflict#">

    <cfreturn cffile>
</cffunction>

А затем используйте его в cfscript:

<cfscript>
    // NOTE: because of how cffile works, put the form field with the file in quotes.
    result = fileUploader("FORM.myfield", myDestPath);
    WriteOutput(result.fileWasSaved);
</cfscript>

Примечание: я бы очень осторожно переименовал эту функцию, если Adobe все же включит эту функцию в будущем.

10
ответ дан 18 December 2019 в 13:13
поделиться

Решение о том, как именно разрушить ваше решение, субъективно - и это действительно зависит от специфики вашего кода.

Однако ясно одно: поддержание нескольких сборок имеет недостатки! Эта статья особенно хорошо описывает эти недостатки, наблюдая, как они увеличивают затраты во время разработки, компилируют время, время развертывания и время выполнения.

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

-121--4585713-

Есть плюсы и минусы для обоих подходов, которые нужно лично решить между для вашего собственного обстоятельства.

Pro для нескольких проектов:

  • Отдельные сборки позволяют компилятору обеспечивать более строгое руководство, потенциально предотвращая проскальзывание связи. Это позволяет лучше поддерживать зависимости.
  • Отдельные сборки могут загружаться по мере необходимости в другие проекты, что может облегчить повторное использование.
  • Отдельные сборки могут предотвратить загрузку ненужного кода в процесс, поскольку они загружаются по запросу.

Минусы для нескольких проектов:

  • Более сложное развертывание, поскольку больше файлов нуждается в развертывании (незначительное)
  • Более медленная сборка/компиляция и даже потенциально время загрузки от загрузки нескольких сборок (незначительное)

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

-121--4585708-

Нет, но запрос получен.

1
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: