如何在ColdFusion 8中确定文件上载是否为有效的CSV文件 - 或至少是文本?

Eri*_*air 5 csv coldfusion file-upload coldfusion-8

我有一个表单,允许用户将文件上传到服务器.如何在ColdFusion 8中验证上载的文件实际上是预期的格式(CSV,或至少验证它是文本文件)?

Tom*_*lak 4

对于 CSV 这样的简单格式,只需检查一下自己,例如通过正则表达式。

 <cffile action="read" file="#uploadedFile#" variable="contents" charset="UTF-8">

 <cfset LooksLikeCSV = REFind("^([^;]*;)+[^;]*$", contents)>
Run Code Online (Sandbox Code Playgroud)

您可以对文件大小限制或禁止字符进行额外检查。

对于其他文件格式,您可以检查文件前几个字节中出现的标头签名。

您甚至可以为您期望的文件格式编写一个完整的解析器 - 对于 CSV 验证,您可以在 CR/LF 处执行ListToArray()并根据正则表达式单独检查每一行。XML 的工作方式也应该非常简单——只需尝试将其传递给XmlParse(). 像图像这样的二进制格式有点困难,但那里也存在库。