coldfusion 相关问题

ColdFusion是一个服务器端快速应用程序开发平台,实现了动态通用CF​​ML编程语言。请在问题中包含CFML版本,操作系统和Web服务器。

如何使用 CFIMAP 或 CFPOP 从“已删除邮件”文件夹中删除电子邮件

我正在尝试使用 CFIMAP 或 CFPOP 从“已删除邮件”文件夹中删除电子邮件 我正在尝试使用 CFIMAP 或 CFPOP 从“已删除邮件”文件夹中删除电子邮件消息 <cfpop action="delete" server="#mymailserver#" port="995" secure="yes" username="#myusername#" password="#mypassword#" uid="#uid#" > 或 <cfimap action="open" server="#mymailserver#" port="993" secure="yes" connection="imapconnection" username="#myusername#" password="#mypassword#" > <cfimap action="delete" uid="#id#" connection="imapconnection"> <cfimap action="close" connection = "imapconnection"> #id# 是已删除邮件文件夹中邮件的 UID。 我用CFPOP的时候没有效果。进一步的调查表明,无论它们在哪个文件夹中,我都无法使用 CFPOP 删除邮件。让这个与 CFPOP 一起工作对我来说并不是很重要,因为我可以使用 CFIMAP 删除除“已删除邮件”文件夹以外的文件夹中的邮件。 当我使用 CFIMAP 从“已删除邮件”文件夹中删除邮件时,出现 java NullPointerException 错误。如上所述,我可以毫不费力地删除其他文件夹中的邮件,例如收件箱或已发送邮件文件夹。 有没有办法从“已删除邮件”文件夹中删除电子邮件,一次一个或一次全部? 删除消息时,包括文件夹和UID。 <cfimap action="delete" folder="#myfolder#" uid="#id#" connection="imapconnection">

回答 1 投票 0

为什么 Coldbox route-visualizer 安装成功后没有显示在浏览器中?

我的本地计算机上有 Coldbox 和一个 Coldbox 应用程序,我将其用于 Coldbox 动手视频课程(CFcasts.com,“Coldbox 从零到英雄工作室”)。我刚刚成功安装了 ...

回答 1 投票 0

在 ColdFusion 的 Part Number 字段中有 C 和 C 后数字的搜索结果

我有一个搜索结果页面,其中列出了工程师必须处理的零件编号,但我只希望结果页面上显示的零件编号在零件中有一个 C,然后在 C 之后有一个数字

回答 1 投票 0

CFOUTPUT循环

我正在尝试显示和处理来自数据库的 26 行记录,并像这样处理这些行: 我正在尝试显示和处理来自数据库的 26 行记录,并像这样处理这些行: <cfquery datasource="mydata" username="myuser" password="mypass" name="mylist" cachedWithin="#createTimeSpan( 0, 0, 5, 0 )#"> SELECT field1,field2 WHERE product = "myproduct" ORDER BY idfield DESC LIMIT 26 </cfquery> <!--- process them ---> <cfoutput query="mylist" maxRows=10> <!--- get the latest 6 record ---> <cfif mylist.CurrentRow lte 6> <!--- do something special with the latest record ---> <cfif mylist.CurrentRow eq 1> do something special <cfoutput> mylist.CurrentRow - #mylist.CurrentRow#<br> </cfoutput> <cfelse> do something else </cfif> <cfif mylist.CurrentRow lte 3> do something </cfif> </cfif> do something </cfoutput> 我期待看到一行这样的输出: mylist.CurrentRow - 1 但是我得到了这个: mylist.CurrentRow - 1 mylist.CurrentRow - 2 mylist.CurrentRow - 3 mylist.CurrentRow - 4 mylist.CurrentRow - 5 mylist.CurrentRow - 6 mylist.CurrentRow - 7 mylist.CurrentRow - 8 mylist.CurrentRow - 9 mylist.CurrentRow - 10 mylist.CurrentRow - 11 mylist.CurrentRow - 12 mylist.CurrentRow - 13 mylist.CurrentRow - 14 mylist.CurrentRow - 15 mylist.CurrentRow - 16 mylist.CurrentRow - 17 mylist.CurrentRow - 18 mylist.CurrentRow - 19 mylist.CurrentRow - 20 mylist.CurrentRow - 21 mylist.CurrentRow - 22 mylist.CurrentRow - 23 mylist.CurrentRow - 24 mylist.CurrentRow - 25 mylist.CurrentRow - 26 这真是令人费解。因为它应该仅在行等于 1 时显示。为什么我会看到所有这些行? 其次,当我将 maxrows 设置为 10 时,为什么我看到 26 行? 希望有人能启发我。提前致谢。 首先,maxrows限制查询变量从数据库返回后的结果数。 如果您只返回一个结果,那么这不会对您的查询性能产生任何影响。 ColdFusion 允许您使用 CFQUERYPARAM 标签传递绑定参数。 例如: <cfquery name="q"> SELECT property1, property2, property3 FROM yourTable WHERE RowID = <cfqueryparam value="#NumericVariable#" cfsqltype="CF_SQL_INTEGER" /> </cfquery> 您可以希望通过提供绑定参数并指定要返回的属性来提高数据库的速度。这可能允许更好的查询缓存和性能改进,具体取决于您使用的数据库引擎。 我会补充说,使用 CFQUERYPARAM 通常比让变量不合格并可能对 SQL 注入攻击开放更安全。 其次,你得到所有结果的原因是因为内部 cfoutput <cfoutput> mylist.CurrentRow - #mylist.CurrentRow#<br> </cfoutput> 我想更好的解决方案是这样查询: <cfquery datasource="ECS360" name ="mylist"> select * from employee.employee ORDER BY employeenumber DESC </cfquery> <cfoutput query="mylist" maxRows="26"> <br/> <!--- get the latest 6 record ---> <cfif #mylist.CurrentRow# lte 6> <!--- do something special with the latest record ---> currnet row #mylist.currentrow# <cfif #mylist.CurrentRow# eq 1> do something special #mylist.CurrentRow# - #mylist.CurrentRow#<br> <cfelse> currnet row #mylist.currentrow# do something else </cfif> <cfif #mylist.CurrentRow# lte 3> do something 123 </cfif> </cfif> </cfoutput>

回答 1 投票 0

如何用 Java 编写现有的 coldfusion 功能

您好,我想将一个应用程序从 Coldfusion 迁移到 Java。如何使用 Java 编写此功能 从表 1 中选择 * 您好,我想将一个应用程序从 Coldfusion 迁移到 Java。如何使用 Java 编写此功能 <cfquery name="query1" datasource="datasource1"> Select * from table1 </cfquery> <cfquery name="query2" dbtype="query"> SELECT * from query1 where *************** </cfquery> // Import the required classes import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; // Establish a connection to the database Connection connection = null; String url = "jdbc:mysql://localhost/datasource1"; String username = "your_username"; String password = "your_password"; try { connection = DriverManager.getConnection(url, username, password); } catch (SQLException e) { e.printStackTrace(); } // Execute the first SQL query Statement statement = null; ResultSet resultSet = null; String sql1 = "SELECT * FROM table1"; try { statement = connection.createStatement(); resultSet = statement.executeQuery(sql1); } catch (SQLException e) { e.printStackTrace(); } // Execute the second SQL query String sql2 = "SELECT * FROM query1 WHERE ***************"; try { statement = connection.createStatement(); resultSet = statement.executeQuery(sql2); } catch (SQLException e) { e.printStackTrace(); } // Process the results try { while (resultSet.next()) { // Process each row of the result set } } catch (SQLException e) { e.printStackTrace(); } finally { // Close the database resources try { resultSet.close(); statement.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } }

回答 1 投票 0

在 ColdFusion 中规范化字符串

我正在尝试在 ColdFusion 中规范化字符串。 我想为此使用 Java 类 java.text.Normalizer,因为据我所知,CF 没有任何类似的功能。 这是我当前的代码: <...

回答 3 投票 0

计算当前季度的最后一天

计算当前季度最后一天的最有效方法是什么? 示例:给定日期 3/5/09,我想返回 3/31/09。 平台是 ColdFusion 和 SQL Server

回答 6 投票 0

在 Visual Studio Code 中用正则表达式替换数据

我一直在尝试在 Visual Studio Code 中使用正则表达式替换一串字符,因为有几个查询和文件,我有以下代码来说明我想做什么: 我一直在尝试在 Visual Studio Code 中使用正则表达式替换一串字符,因为有几个查询和文件,我有以下代码来说明我想做什么: <cfquery datasource='#cdc#' username='#user#' password='#password#' name='RS_List_Lib'> SELECT fun_ctl_save_type(#id_inm#,'#arc_doc#'); </cfquery> <cfquery datasource='#cdc#' username='#user#' password='#password#' name='RS_List_Lib'> SELECT * FROM fun_ctl_proyect_int_show(#id_inm#); </cfquery> 我想要做的是将它使用的“#parameter#”替换为: <cfqueryparam value = "#parameter#" CFSQLType = "CF_SQL_INTEGER"> 但是,我不想修改“”标签内的内容,只修改查询中的内容,以便它给我这个结果: <cfquery datasource='#cdc#' username='#user#' password='#password#' name='RS_List_Lib'> SELECT fun_ctl_save_type(<cfqueryparam value = "#id_inm#" CFSQLType = "CF_SQL_INTEGER">, <cfqueryparam value = "#arc_doc#" CFSQLType = "CF_SQL_INTEGER">); </cfquery> <cfquery datasource='#cdc#' username='#user#' password='#password#' name='RS_List_Lib'> SELECT * FROM fun_ctl_proyect_int_show(<cfqueryparam value = "#id_inm#" CFSQLType = "CF_SQL_INTEGER">); </cfquery> 我用这个尝试这个正则表达式,但它对我不起作用: (<cfquery\s+(?:(?!>).)*?>!?)*(SELECT\s(.*)+((\s*#\w+#\s*(?:,\s*#\w+#\s*)*).)?) 因为所有的“SELECT ...”和另一个它采用“#parameter#”中的所有值并将它们放在一起并且不会被停止: (<cfquerys+(?:(?!>).) *?>!?) *(?<=[(])(.*?) (?=)) 最后我仍然有这个正则表达式:(s*#w+#s*(?:,s*#w+#s*)*)来识别我所有使用“#parameter#”但替换那些在“”标签内的人如果不保持不变并且只修改那些有疑问的人。我希望你能帮助我。 我已经尝试过这些表达式,但我不知道还能修改什么,因为我不太擅长它们。 正则表达式 1: <cfquery> 正则表达式 2: (\s*#\w+#\s*(?:,\s*#\w+#\s*)*) 假设 (<cfquery\s+(?:(?!>).)*?>!?)*(?<=[\(])(.*?)(?=\)) 和 #id_inm# 仅出现在 '#arc_doc# 行中,如您的示例所示,试试这个,请参阅 Regex101 演示。 查找:Select替换:(#id_inm#)|'(#arc_doc#)'

回答 1 投票 0

将查询传递给 coldfusion 函数

我正在尝试将查询传递给函数。该查询包含一个结果集,我想对这些结果进行多次查询。这是函数的开始。 公共数组函数...

回答 0 投票 0

我的代码中是否添加 0.5 的计算失败了

我正在尝试选择日期以及上午和下午,但我对我做错的地方感到困惑,这是我的代码 如果 (($('#StartDate_TmZone').length != 0 && $('#EndDate_Tm...

回答 0 投票 0

ColdFusion:如果查询列值不匹配,则新建工作表

我有一个显示如下结果的查询,它需要将这些结果导出到 excel 中。但是我需要基于 ID 列的唯一性的多标签 Excel 工作表,而不是 1 张工作表 所以第一张

回答 1 投票 0

使用 Coldfusion 创建 XML 并将 XML 传递给 SQL 存储过程

我正在尝试使用 coldfusion 创建 XML 并将其传递给 SQL 存储过程。 目前我有这样的事情: 我正在尝试使用 coldfusion 创建 XML 并将其传递给 SQL 存储过程。 目前我有这样的东西: <cfxml variable="objXml"> <imp> <data> <date>3/20/2023</date> <name>John</name> <CC>US</CC> </data> </imp> </cfxml> <cfprocparam type="In" cfsqltype="CF_SQL_SQLXML" dbvarname="@xmlData" value="#objXml.toString()#" null="no"> 我尝试了很多不同的东西。将类型从 SQLXML 更改为 CLOB。使用 ENCODEFORHTML(objXML)、XMLPARSE() 等 我正在尝试对使用的一些旧代码进行故障排除: createObject("java", "java.lang.StringBuilder") 字符串构建器似乎更直观,但它失败了,所以我试图从尽可能简单的开始,但我尝试的任何事情都不起作用。 当我尝试传递 objXml 时,最初我得到 SQL 说明它不能更改编码类型。 所以我从 coldfusion 参考页面尝试了这个: <cfset myvar=toString(xmlobject)> <cfset mynewvar=replace(myvar, "UTF-8", "utf-16")> 那没有帮助。我还尝试完全从 xml 中完全删除“xml 版本”节点,但没有成功。 老方法使用string builder,逐一追加xml节点,使用.toString()传递xml,CFSQLType为CLOB。 使用 coldfusion 创建 XML 的最佳方法是什么? 具体来说,我正在使用逗号分隔的列表,并将该列表转换为 XML 并将其发送到存储过程。 在处理 XML 字段并将其存储到表中时,我几乎没有 SQL 方面,一旦它进入存储过程,但我无法终生弄清楚我需要做什么拿到那里。 编辑: 这是重要的 SQL 代码: DECLARE @xmlData XML = '' ????????????????????????????????????????? SELECT dataElements.ID.value('date[1]', 'Date') as DT, dataElements.ID.value('name[1]', 'varchar(12)') as NA_TE, dataElements.ID.value('CC[1]', 'char(2)') as CNY_CD FROM @xmlData.nodes('/imp/data') as dataElements(ID); 我不太关心这部分,我认为问题出在尝试传递 coldfusion 变量。这可能与'有关 这就是为什么我要问如何在 coldfusion 中创建 XML 并将其传递给存储过程。我想如果我能得到确认,我就可以继续前进了。 当我使用 objXML.toString() 传递 objXML 时,出现此错误: '无法切换编码' 我注意到当我在前端打印 objXML.toString() 时,它缺少 xml 节点。 我可以使用 ENCODEFORHTML() 打印 XML 节点,我尝试像那样传递到存储过程中,实际上它似乎比使用 toString() 效果更好,存储过程实际运行并返回一条消息。它仍然不能成功运行,但至少可以运行。 使用 .toString() 导致存储过程甚至不执行,或者看起来是这样。 objXML.toString() 在前端产生这个: 3/20/2023 美国约翰 使用 ENCODEFORHTML(objXML) 产生这个: <?xml version="1.0" encoding="UTF-8"?> <imp> <data> <date>3/20/2023</date> <name>John</name> <CC>US</CC></data></imp> 请在 SQL Server 端尝试以下操作。 我逐字使用了您的 XML 示例。 亮点: text() 用于每个 XML 元素的 XPath 表达式以提高性能 原因。 SQL DECLARE @xmlData XML = '<?xml version="1.0" encoding="UTF-8"?> <imp> <data> <date>3/20/2023</date> <name>John</name> <CC>US</CC> </data> </imp>'; SELECT c.value('(date/text())[1]', 'DATE') as DT, c.value('(name/text())[1]', 'VARCHAR(20)') as NA_TE, c.value('(CC/text())[1]', 'CHAR(2)') as CNY_CD FROM @xmlData.nodes('/imp/data') as t(c); 输出 DT NA_TE CNY_CD 2023-03-20 约翰 美国

回答 1 投票 0

尝试通过编写正确的 SQL 查询来摆脱“cfloop”

我正在学习在 ColdFusion 上编写 SQL 查询,现在我面临着摆脱循环的任务。这段代码原本是: 我正在学习在 ColdFusion 上编写 SQL 查询,现在我面临着摆脱循环的任务。这段代码原来是: <cftransaction> <cfloop list="#dogs_id_list#" item="dog_id"> <cfquery name="qCheck" datasource="#request.DS#"> SELECT 1 FROM doghouses dh WHERE dh.dog_id = <cfqueryparam value="#dog_id#" cfsqltype="cf_sql_integer"> AND dh.doghouse_id = <cfqueryparam value="#doghouse_id#" cfsqltype="cf_sql_integer"> </cfquery> <cfif qCheck.recordCount EQ 0> <cfquery name="qIns" datasource="#request.DS#"> insert into doghouses ( doghouse_id, dog_id ) values (<cfqueryparam value="#doghouse_id#" cfsqltype="CF_SQL_integer"> , <cfqueryparam value="#dog_id#" cfsqltype="CF_SQL_integer"> ) <cf_identity_return id="doghouses_id"> </cfquery> <cfset doghouses_id=qIns.id/> </cfif> </cfloop> </cftransaction> 这就是我试图缩短它的方式: <cftransaction> <cfquery name="qIns" datasource="#request.DS#"> INSERT INTO doghouses ( doghouse_id ,dog_id ) SELECT dh.doghouse_id, dog_id FROM doghouses dh WHERE dh.doghouse_id = <cfqueryparam value="#doghouse_id#" cfsqltype="cf_sql_integer"> AND dog_id IN (<cfqueryparam value="#dogs_id_list#" list="true" cfsqltype="cf_sql_integer">) <cf_identity_return id="doghouses_id"> </cfquery> <cfif qIns.recordCount NEQ 0> <cfset doghouses_id=qIns.id/> </cfif> </cftransaction> 因此,程序没有任何干扰,但请求返回一个空值,对象列表没有更新。 为了保护信息,变量的名称已更改 请帮我找出我哪里弄错了

回答 0 投票 0

CURL 成功,但 CFHTTP 获取 404 访问 GoogleFit API 端点:/fitness/v1/users/me/dataset:aggregate

这真的让我发疯!! 当我将其格式化为 curl 语句时,完全相同的请求成功,但在使用 cfhttp 发出请求时得到 404。 冷聚变 这真让我抓狂!! 当我将其格式化为 curl 语句时,完全相同的请求成功,但在使用 cfhttp 发出请求时得到 404。 冷聚变 <cfhttp method="POST" result="stepsResponse" url="https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate"> <cfhttpparam type="header" name="Authorization" value="Bearer #ACCESS_TOKEN#"> <cfhttpparam type="header" name="Content-Type" value="application/json;encoding=utf-8"> <cfhttpparam type="body" value='#serializeJSON({"bucketByTime":{"durationMillis":86400000},"endTimeMillis":1678950000000,"startTimeMillis":1678863600000,"aggregateBy":[{"dataSourceId":"derived:com.google.step_count.delta:com.google.android.gms:estimated_steps","dataTypeName":"com.google.step_count.delta"}]})#'> </cfhttp> 卷曲 curl \ -X POST \ -H "Content-Type: application/json;encoding=utf-8" \ -H "Authorization: Bearer {ACCESS_TOKEN}" \ -d '{"bucketByTime":{"durationMillis":86400000},"endTimeMillis":1678950000000,"startTimeMillis":1678863600000,"aggregateBy":[{"dataSourceId":"derived:com.google.step_count.delta:com.google.android.gms:estimated_steps","dataTypeName":"com.google.step_count.delta"}]}' \ https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate 为什么?为什么?为什么? 奇怪的是,当我直接在浏览器中调用端点时,我也得到了 404。我相当确定我忽略了一些(简单的)东西,但在过去的几天里我一直盯着它看几个小时,看不出我哪里出错了。我真诚地希望有人能看到这个问题。感谢您的宝贵时间! 谷歌开发者指南——阅读每日总步数

回答 0 投票 0

ColdFusion 处理 HTML5 <input type="file" multiple="multiple" />

我正在尝试实现一个 HTML5 输入字段,让用户可以选择多个文件进行上传。我的表格中有以下内容: 我正在尝试实现一个 HTML5 输入字段,让用户可以选择多个文件进行上传。我的表格中有以下内容: <form method="post" enctype="multipart/form-data" action="index.cfm"> <input type="file" name="Images" id="Images" multiple="multiple" accept="image/jpeg, image/gif, image/png, application/zip" /> ... 我可以在浏览器中选择多个文件,然后单击上传,但我不确定如何使用 ColdFusion 处理表单发布。我认为以下方法可行,但这只会上传我选择的最后一个文件: <cfloop list="#attributes.Images#" index="Image"> <cffile destination = "#ExpandPath(Trim(request.TempFolder))#" filefield = "Images" action = "upload" nameconflict = "MakeUnique" result = "UploadedTempFile" > <cfoutput>#UploadedTempFile.serverFile#<br /></cfoutput> </cfloop> 有人可以向我解释如何遍历通过我的一个表单字段提交的所有文件,以便我可以单独处理这些文件吗? 在搜索了一些博客文章、遇到了这个问题并阅读了 Adobe 的文档之后,似乎一致认为 CF10 不支持“多个”文件上传支持(除非您使用的是 Flash 表单)。问题是,cffile 标签的“uploadall”值可能会上传所有文件,但您不会返回有关文件的结果数组。 这是我拼凑的一个函数,它利用了底层 Java 方法并在 ACF 10 中进行了测试。 <cffunction name="getUploadedFiles" access="public" returntype="struct" hint="Gets the uploaded files, grouped by the field name"> <cfset var local = { files = {}, types = "text/plain,text/csv,application/msexcel,application/vnd.ms-excel,application/octet-stream", tempFiles = form.getTempFiles(), idx = 0} /> <cfscript> arrayEach(form.getPartsArray(), function (field) { var local = {fieldName = field.getName(), destinationFile = ""}; // Make sure the field available in the form is also // available for the temporary files if (structKeyExists(tempFiles, fieldName)) { // Create the files of field array if it doesn't exist if (!structKeyExists(files, fieldName)) { files[fieldName] = []; } // If only 1 file was uploaded, it won't be an array - so make it one if (!isArray(tempFiles[fieldName])) { tempFiles[fieldName] = [tempFiles[fieldName]]; } // Check that the form part is a file and within our list of valid types if (field.isFile() && listFindNoCase(types, field.getContentType())) { // Compile details about the upload arrayAppend(files[fieldName], { file = tempFiles[fieldName][++idx], filePart = field, filename = field.getFileName(), filepath = field.getFilePath(), contentType = field.getContentType(), tempFile = tempFiles[fieldName][idx].getPath() }); } } }); </cfscript> <cfreturn local.files /> </cffunction> 跟随评论,这只是循环遍历所有表单部分,查找文件,并创建一个包含一些有用文件详细信息的数组(并根据我的应用程序要求按特定内容类型进行过滤)。 然后,我创建了 uploadFile 函数,它接受 fieldName 和 destinationPath 参数。我根据传入的字段获取上传文件的数组,遍历文件以确保目标文件路径不存在(如果存在则使其唯一),然后使用 java.xml 的内容写入目标文件。从临时上传中引用的 io.File 对象。 <cffunction name="uploadFile" access="public" returntype="array" hint="Uploads a file (or multiple files) from the form to the server"> <cfargument name="fieldName" type="string" required="true" /> <cfargument name="destinationPath" type="string" required="true" /> <cfset var local = {files = [], filepaths = [], allFiles = getUploadedFiles()} /> <cfif structKeyExists(local.allFiles, arguments.fieldName)> <cfset local.files = local.allFiles[arguments.fieldName] /> </cfif> <cfloop array="#local.files#" index="local.file"> <cfset local.file.destinationFile = arguments.destinationPath & local.file.fileName /> <cfif fileExists(local.file.destinationFile)> <cfset local.file.destinationFile = listFirst(local.file.destinationFile, ".") & "_#getTickCount()#.csv" /> </cfif> <cfset fileWrite(local.file.destinationFile, fileRead(local.file.file)) /> <cfset arrayAppend(local.filePaths, local.file.destinationFile) /> </cfloop> <cfset setActiveFileName(local.filePaths[arrayLen(local.filePaths)]) /> <cfreturn local.filePaths /> </cffunction> 现在我可以完全控制所有正在上传的文件,并且可以处理所需的结果。 更新:从 ColdFusion 9 开始,这是真的。这已在 ColdFusion 10 中得到纠正。 结束我们的评论对话: 这对于默认的 ColdFusion 行为来说根本不可能。 cffile 不支持处理来自单个 file 元素的多个文件上传。我认为有可能回退到 JAVA 来做到这一点,但我不知道如何做到这一点。 我很想cffile action="uploadall" 抓取所有HTML5 多文件元素。需要将其归档为 CF10 的 ER :). fileUploadAll()/<cffile action="uploadAll">允许您上传所有文件,也可以上传<input type="file" multiple>.的多个文件 尽管它总是处理请求的all文件,即它不区分不同的文件输入,您可能希望以不同的方式处理这些文件,例如通过 accept 参数设置不同的允许 MIME 类型或将文件上传到每个输入的不同位置。 因此,我在 Adobe ColdFusion 和 Lucee 问题跟踪器 上创建了增强请求。 基本思路是改变fileUpload()函数和<cffile action="upload">如果表单域有多个文件自动返回一个数组,或者如果这导致兼容性问题,添加一个新的参数multiple默认为false控制. 是的,它适用于 CF-2018。试试这个用于多文件上传。 <cfif isdefined("form.submit")> <cffile action="uploadall" destination="#expandpath(".")#" nameconflict="MakeUnique" accept="image/png,image/jpeg,.png,.jpg,.jpeg" strict="true" result="fileUploaded" allowedextensions=".png,.jpg,.jpeg" > <cfloop array="#fileUploaded#" item="item"> <br><cfdump var="#filegetmimetype(item.serverdirectory&'/'&item.serverfile)#"> <br><a href="<cfoutput>#item.serverfile#</cfoutput>"><cfoutput>#item.serverfile#</cfoutput></a> </cfloop> </cfif> <h3>Upload multiple files.</h3> <cfform method="POST" action="#CGI.SCRIPT_NAME#" enctype="multipart/form-data"> <cfinput type="file" name="Images" multiple="multiple" accept="image/jpeg, image/gif, image/png, application/zip" /><br /> <cfinput type="submit" name=" submit" value="submit"> </cfform>

回答 4 投票 0

当被 javascript 获取时,查询输出从 Lucee (CFML) 混合在一起

我有以下代码.. 异步函数 updateItems() { 等待获取('http://127.0.0.1/WebProjects/LARPLookup/Actions/Game/Items.cfm') .then(响应=> response.text()) .then((重新...

回答 0 投票 0

使用变量进行查询。列赋值而不是显式定义的名称

下面的工作查询用于下一个失败的代码部分: 选择 下面的工作查询用于下一个失败的代码部分: <cfquery name="q_GetAnalyticsSect" datasource="#THIS.DSN#"> SELECT <cfloop from="1" to="11" index="i"> SUM(CASE WHEN YEAR = #thisYear# AND MONTH = #i# THEN VIEWS ELSE 0 END) #monthArr[i]#, </cfloop> SUM(CASE WHEN YEAR = #thisYear# AND MONTH = 12 THEN VIEWS ELSE 0 END) December FROM SYSTEM_ANALYTICS </cfquery> 注意: 一个。 monthArr 只是使用数字的每个月名称(一月到十二月)。 乙。 SUM(CASE..) 语句执行为: SUM(CASE WHEN YEAR = 2023 AND MONTH = 1 THEN VIEWS ELSE 0 END) January, SUM(CASE WHEN YEAR = 2023 AND MONTH = 2 THEN VIEWS ELSE 0 END) February, …… through December 查询后,我尝试使用以下过程从每个查询列中检索值: <cfset sectionArr = ArrayNew(1)> <cfloop query="q_GetAnalyticsSect"> <cfloop from="1" to="12" index="i"> <cfset sectionArr[i] = q_GetAnalyticsSect.monthArr(i)> </cfloop> </cfloop> 但是,我得到错误: 元素 MONTHARR 在 Q_GETANALYTISSSECT 中未定义 我可以列出所有 12 个陈述: <cfset sectionArr[1] = q_GetAnalyticsSect.January)> <cfset sectionArr[2] = q_GetAnalyticsSect.February> .... <cfset sectionArr[12] = q_GetAnalyticsSect.December> 但我希望逻辑适用于其他项目。 ColdFusion 似乎明确使用了数组变量名 (.monthArr(i)) 而不是数组值 (January..December)! 因此我需要代码来使用实际的数组值作为查询列。 我该怎么做? 这是我从ChatGPT得到的答案: <cfset sectionArr[i] = q_GetAnalyticsSect[monthArr[i]][q_GetAnalyticsSect.currentRow]> 成功了!随意发布任何其他解决方案。

回答 1 投票 0

vscode - 特定于语言的注释块字符(以便可以识别#region 进行折叠)

我在 vscode 中使用 ColdFusion。在 CF 中,注释块类似于 HTML,除了它有额外的第三个 - ,如下所示: 我想利用 vscode 识别#region [....

回答 1 投票 0

CFML / Fusebox 5.5:解析引擎无法(有时)关闭 CFIF 标签

这是 Fusebox 5.5.1 应用程序。出于某种原因,虽然我多年来一直在使用 Fusebox,但最近我遇到了一个新问题。 解析引擎似乎偶尔想(和解析一样...

回答 0 投票 0

Lucee - 页眉和页脚没有进入每个页面

我正在使用 Lucee 生成 pdf。 PDF 超过 1 页。每当生成 pdf 时,页眉和页脚都不会进入每个 .它只是来到 pdf 的最后一页。我附上了...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.