【发布时间】:2016-08-29 12:29:41
【问题描述】:
我想创建一个新函数,它将获取 CSV 并从中解析数据,然后将其写入数据库。 到目前为止,我设法得到了这个:
<cfhttp method="get" url="C:\ColdFusion11\path\test.csv" name="csvData">
<cfoutput>#isQuery(csvData)#</cfoutput>
<cfloop query="csvdata" >
<p>
<cfloop list="#csvdata.columnlist#" index="i">
<cfoutput>
#csvdata['#i#'][currentRow]# -
</cfoutput>
</cfloop>
</p>
</cfloop>
我得到这个错误:
变量 CSVDATA 未定义
我不知道为什么会出现这个错误,因为我的 var 是在 cfhttp 中定义的(或者我在那里做错了什么?)
【问题讨论】:
-
阅读
cfspreadsheet。 helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/… -
... url="C:\ColdFusion11\path\test.csv" 这不是有效的 url。正如标签名称所暗示的那样,
cfhttp用于发出 http 请求,而不是读取本地驱动器上的文件。 -
其实用cfhttp读取服务器上的文件是完全有效的。要查看示例,请转到此处,help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/…,然后查找以
Building a query from a delimited text file开头的部分。正如你所指出的,url 的语法是不同的。 -
@DanBracuk - 是的,这不是我最清楚的措辞。我的意思是它需要一个 URL(即 http|https),而不是像“c:/path/file.ext”这样的本地文件路径。
-
@AdrianJ.Moreno 我发现 cfspreadsheet type="csv" 只是将读取的 xls 文档转换为 csv 格式。不确定这有多大用处。