coldfusion - 如何在 cfif 语句中放置多个 NOT 条件?

标签 coldfusion logic cfml

这是我的代码:

<cfif (CFFILE.FileSize GT (4194304))>
Delete File
<cfelseif CFFILE.serverFileExt neq "png"  >
Delete File
<cfelse>
It's ok
</cfif>

我想添加“jpg”和“jpeg”作为允许的文件类型。我试过了,这没有成功。

<cfif (CFFILE.FileSize GT (4194304))>
Delete File
<cfelseif ( ( CFFILE.serverFileExt neq "png" ) OR ( CFFILE.serverFileExt neq "jpg" ) OR ( CFFILE.serverFileExt neq "jpeg" ) ) >
Delete File
<cfelse>
It's ok
</cfif>

有什么想法吗?

解决方案:

我的 OR 语句需要是 AND,谢谢 Miguel-F,经过 Busches 的改进,这是最终结果:

<cfif (CFFILE.FileSize GT (4194304))>
    Delete File
<cfelseif NOT ListFindNoCase("jpg,jpeg,png", CFFILE.serverFileExt)>
    Delete File
<cfelse>
    It's ok
</cfif>

谢谢大家!

最佳答案

正如 Miguel-F 所说,您的问题是您需要使用 AND 而不是 OR。我还建议,在这种情况下,改用 ListFindNoCase() 而不是使用多个 OR/AND 语句。

<cfif CFFILE.FileSize GT 4194304> <!--- You also don't need all those () here --->
    Delete File
<cfelseif NOT ListFindNoCase( "png,jpg,jpeg", cffile.ServerFileExt )>
    Delete File
<cfelse>
    It's ok
</cfif>

ListFindNoCase 更加简洁,更易于阅读和维护。

关于coldfusion - 如何在 cfif 语句中放置多个 NOT 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413176/

相关文章:

coldfusion - 使用 cfscript 创建的查询的 cfoutput

java - 尝试使用 Smackx pubsub 获取节点时出现 item-not-found(404)

paypal - ColdFusion (CFML) 仅在具有 Paypal API 的移动设备上丢失 session 变量

sql-server - Sql server 在数据透视查询中使用变量

确定给定价格的 "usual"现金支付金额的算法

python - Pandas 中的逐元素异或

logic - A或B = B或A证明(自然演绎)

android - JSON/CFML - 遍历结构数组

coldfusion - CF : Saving a Fusioncharts graph as an image to email it

xpath - 让 XmlSearch 仅返回 sibling ,而不返回 child