标签: coldfusion

收集ColdFusion CFC最佳/推荐做法?

我一直在建立一份要分享的CFC最佳实践清单.

那里有很多文章,但我认为在这里通过经验学到的任何技巧和提示可以在一起.

我会在这里添加一些链接以便它继续下去,但我认为最好的事情不是长篇文章可以用Google搜索.

CFC最佳实践

Macromedia CFC最佳实践

更新:这已被制作成社区维基

coldfusion cfc

9
推荐指数
1
解决办法
4948
查看次数

在没有"解析文件或目录未找到"错误的情况下重新加载Fusebox应用程序的最佳方法是什么?

我有一个使用CF8和Fusebox 5的站点.无论何时我需要为站点添加新功能,我通常都需要为circuit.xml.cfm添加一个新的保险丝,用于控制器,模型或视图,或者全部.要启用这些新功能/页面,请转到以下网址:

?fusebox.load=true&fusebox.parse=true&fusebox.password=password&fusebox.loadclean=true
Run Code Online (Sandbox Code Playgroud)

最后一个参数是我最近选择的参数,并确定使用它可以启用我的新保险丝; 没有它,新的保险丝不被识别.但是,当我这样做时,删除之前生成的所有解析文件.这不是什么大问题,因为它们在第一次需要时会动态重新生成,但我有一些页面在访问时会返回错误.该错误表示目录未找到,但它们在那里,每次出现都是因为解析文件不存在.

以下是堆栈跟踪的一个错误示例:

Error - Parsed File or Directory not found.

Date/Time: Apr 25 2009 12:26:02

Type: fusebox.missingParsedFile

Message: Parsed File or Directory not found.

Detail:

Attempting to execute the parsed file 'login.logout.cfm' threw an error. This can occur if the parsed file does not exist in the parsed directory or if the parsed directory itself is missing.
Stack Trace:
    coldfusion.runtime.CustomException: Parsed File or Directory not found.
    at coldfusion.tagext.lang.ThrowTag.doStartTag(ThrowTag.java:124)
    at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2644)
    at cffusebox52ecfm1214986498.runPage(C:\example.com\fb5core\fusebox5.cfm:216)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366) …
Run Code Online (Sandbox Code Playgroud)

coldfusion fusebox

9
推荐指数
1
解决办法
1万
查看次数

ColdFusion:有没有人使用WDDX?

我正在开发一个ColdFusion站点,其中数据存储在数据库内的WDDX数据包中,这真的很痛苦.(我不知道为什么这些值不只是存储在另一个表中.)

我之前没有使用过WDDX,我能找到的唯一文档看起来很旧.所以我很好奇是否还有人使用WDDX,如果有的话,为什么?

coldfusion serialization wddx

9
推荐指数
1
解决办法
2770
查看次数

为什么arrayAppend返回true并且listAppend返回列表?

在ColdFusion中,arrayAppend()函数接受一个数组和一个要追加的项.它修改传入的数组,如果成功则返回true.

但是,listAppend()函数接受一个列表和一个要追加的项目,并返回一个附加项目的新列表.它不会修改传入的列表.

为什么这些功能以两种不同的方式运行?我总是转向文档来记住每个文档的返回值.

coldfusion

9
推荐指数
1
解决办法
1378
查看次数

如何以<60秒的间隔运行ColdFusion计划任务?

我有一个CFC方法,我希望以30秒的间隔运行.但是,问题是ColdFusion不会让我安排以60秒或更短的间隔运行的任务.有没有人有关于我如何能够(并且应该)实现这一目标的建议?

为了先发制人地回答"当你的脚本运行时间超过30秒时会发生什么",或者任何其他类似的问题,我已经考虑了所有这些问题,这不是一个问题.

我在Windows Server 2003(IIS6)上运行ColdFusion 8.0.1(带有修补程序4).作为旁注,我使用Java 1.6u21作为ColdFusion的JVM.

提前致谢.

coldfusion cfc scheduled-tasks coldfusion-8

9
推荐指数
2
解决办法
3304
查看次数

用于匹配报价和单引号的正则表达式

我正在为ColdFusion代码编写解析器.我正在使用正则表达式(在c#中)来提取cfquery标记的名称datasource属性.

目前,正则表达式如下 <cfquery\s.*datasource\s*=\s*(?:'|")(.*)(?:'|")

它适用于像<cfquery datasource="myDS" 或的 字符串 <cfquery datasource='myDS'

但解析字符串时会发疯 <cfquery datasource="#GetSourceName('myDS')#"

显然,正则表达式的一部分(?:'|')是原因.当第一个匹配是单引号时,有没有办法只匹配单引号?当第一个匹配是双引号时,只匹配双引号?

提前致谢!

c# regex coldfusion

9
推荐指数
1
解决办法
6884
查看次数

使用cfscript查询的查询参数时出错

这是我的代码:

var qryStr = "
            UPDATE templates_email 
            SET title = :title, test_emails = :testEmail, body = :body
            WHERE id = :templateID";

q = New Query();
q.setSQL(qryStr);
q.addParam(name="title", value="#arguments.title#", cfsqltype="cf_sql_char");
q.addParam(name="body", value="#arguments.templateContent#", cfsqltype="cf_sql_char");
q.addParam(name="testEmail", value="#arguments.test_emails#", cfsqltype="cf_sql_char");
q.addParam(name="templateID", value="#arguments.id#", cfsqltype="cf_sql_integer");

return q.execute().getResult();
Run Code Online (Sandbox Code Playgroud)

这是错误:

在指定的参数列表中找不到参数'body WHERE'

SQL:UPDATE templates_email SET title =:title,test_emails =:testEmail,body =:body WHERE id =:templateID

错误发生在C:\ ColdFusion9\CustomTags\com\adobe\coldfusion\query.cfc:第108行

我只能假设我使用参数构建SQL的方式有问题,但无法解决它的问题.谁能看到我在这里做错了什么?

coldfusion

9
推荐指数
2
解决办法
2830
查看次数

ffmpeg - 我可以将音频通道绘制为图像吗?

我想知道是否可以使用ffmpeg将视频或音频文件的音频通道绘制为图像,或者是否有其他工具可以在Win2k8 x64上执行此操作.我在用户上传视频或音频文件后,将其作为编码过程的一部分.

我正在使用ColdFusion 10来处理上传并调用cfexecute来运行ffmpeg.

我需要图像看起来像这样(没有水平线):

在此输入图像描述

audio coldfusion video ffmpeg coldfusion-10

9
推荐指数
1
解决办法
4711
查看次数

调用Oracle PL/SQL过程时使用什么编码

在我的coldfusion页面上,我调用了PL/SQL过程.HTML表单使用UTF-8编码,oracle DB具有编码WE8ISO8859P1.那么在i_value下面的情况下会发生什么样的转换呢?

我对MS Word左引号(以UTF-8编码)发生的事情特别感兴趣E28098.当我i_value在PL/SQL中解码时,它变为18(十六进制).考虑到它是U + 2018,这是有道理的,但我仍然想知道为什么20吞下它.

<CFSTOREDPROC PROCEDURE = "my_schema.lib.write_field" datasource="#datasource#">
        <cfprocparam cfsqltype="CF_SQL_VARCHAR" variable="i_name"   value="remark"  type="In">
        <cfprocparam cfsqltype="CF_SQL_VARCHAR" variable="i_value" value="#Form.remark#" type="In">
</CFSTOREDPROC>
Run Code Online (Sandbox Code Playgroud)

oracle coldfusion plsql character-encoding coldfusion-9

9
推荐指数
1
解决办法
982
查看次数

ColdFusion 11 - 500非ASCII Cookie字符的内部服务器错误

为了响应任何包含非ASCII字符的cookie的请求,ColdFusion 11似乎崩溃了.IIS 8.5返回HTTP 500内部服务器错误(空白页).

重现步骤:

  1. 在Javascript控制台中运行以下命令并尝试加载任何CFML页面: document.cookie="a=ñ";

  2. (可选)请求任何.html或.txt文件并接收正常响应.

  3. 请求任何ColdFusion页面并收到空白页,HTTP 500内部服务器错误.

  4. 唯一的解决方法是清除浏览器cookie.

环境:

  • Windows Server 2012 R2标准版
  • IIS 8.5
  • 冷融合11(标准)
  • 所有操作系统和软件都运行最新的修补版本.

我已经尝试添加-Dfile.encoding=UTF-8Java参数.

我没有在ColdFusion上找到其他人遇到这个问题.在Tomcat上运行Java代码存在类似的问题.但是,由于ColdFusion 11与Tomcat捆绑在一起,我甚至不知道Tomcat的运行版本以及如何升级它.(看起来ColdFusion 10运行Tomcat 7)Adobe似乎没有关于ColdFusion 11的Tomcat层的文档(特别是它与ColdFusion的关系).我已尝试将<CookieProcessor />配置应用于context.xml,如其他帖子所示.我已发布到Adobe bug基础并且未收到任何响应.

欢迎任何想法.不幸的是,我们在cookie中有很多用户使用"Español",我们无法执行任何ColdFusion代码来清除或更改它.我们在ColdFusion 9中没有遇到这个问题,并且在升级到ColdFusion 11之后在QA检查中错过了这个问题.

coldfusion-error.log完全例外:

Sep 03, 2015 11:43:58 PM org.apache.coyote.ajp.AjpProcessor process
SEVERE: Error processing request
java.lang.IllegalArgumentException: Control character in cookie value or attribute.
    at org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:193)
    at org.apache.tomcat.util.http.Cookies.getTokenEndPosition(Cookies.java:502)
    at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:349)
    at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:168)
    at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:106)
    at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:986)
    at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:743)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:417)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at …
Run Code Online (Sandbox Code Playgroud)

cookies coldfusion tomcat jwplayer coldfusion-11

9
推荐指数
1
解决办法
799
查看次数