2011-06-01 55 views
5

我有一個允許用戶上傳文件到服務器的表單。如何在ColdFusion 8中驗證上載的文件實際上是預期的格式(CSV,或者至少驗證它是文本文件)?如何在ColdFusion 8中確定文件上傳是否爲有效的CSV文件 - 或者至少是文本?

+2

你需要使用Java和似乎沒有成爲一個明確的辦法。看到這個問題:http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in​​-java – orangepips 2011-06-01 20:05:45

回答

4

對於像CSV這樣的簡單格式,只需檢查自己,例如通過正則表達式。

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

<cfset LooksLikeCSV = REFind("^([^;]*;)+[^;]*$", contents)> 

您可以對文件大小限制或禁止的字符進行額外的檢查。

對於其他文件格式,您可以檢查文件的前幾個字節中出現的header signatures

您甚至可以爲您的預期文件格式編寫完整的解析器 - 對於CSV驗證,您可以在CR/LF處執行ListToArray()並針對正則表達式單獨檢查每一行。 XML應該也很簡單 - 只是試着將它傳遞給XmlParse()。像圖像這樣的二進制格式有點難度,但圖書館也存在。

+0

這實際上看起來像一個好主意。我要試一下。 – 2011-06-02 14:51:37

0
+0

是的,我讀過那些文章 - 本的大粉絲。不是真的我在找什麼。謝謝。 – 2011-06-02 14:51:13

0

我認爲這是作爲指定接受值一樣簡單在cffile中......不幸的是,CF8文檔沒有指定值作爲cffile信息的一部分...它在文件管理下...

<cffile action=」upload」 filefield=」filename」 destination=」#destination#」 accept=」text/csv」> 

CF8 » Controlling the type of file uploaded

相關問題