2011-06-01 27 views
5

मेरे पास एक ऐसा फॉर्म है जो उपयोगकर्ता को सर्वर पर फ़ाइल अपलोड करने की अनुमति देता है। मैं कैसे सत्यापित कर सकता हूं कि अपलोड की गई फ़ाइल वास्तव में अपेक्षित प्रारूप (सीएसवी, या कम से कम मान्य है कि यह एक टेक्स्ट फ़ाइल है) कोल्डफ्यूजन 8 में?मैं कैसे निर्धारित कर सकता हूं कि फाइल अपलोड वैध सीएसवी फ़ाइल है - या कम से कम पाठ - कोल्डफ्यूजन 8 में?

+2

आप और जावा का उपयोग करना होगा वहाँ एक निश्चित तरीका हो प्रतीत नहीं होता है। यह प्रश्न देखें: http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java – orangepips

उत्तर

4

सीएसवी जैसे साधारण प्रारूपों के लिए, बस स्वयं को जांचें, उदाहरण के लिए रेगेक्स के माध्यम से।

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

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

आप आकार सीमा या मना पात्रों फाइल के संबंध में अतिरिक्त जांच रख सकते हैं।

अन्य फ़ाइल प्रारूपों के लिए, आप फ़ाइल के पहले कुछ बाइट्स में होने वाले header signatures की जांच कर सकते हैं।

सीएसवी सत्यापन के लिए आप अपने अपेक्षित फ़ाइल प्रारूप के लिए एक पूर्ण पार्सर भी लिख सकते हैं, आप ListToArray() सीआर/एलएफ पर कर सकते हैं और प्रत्येक पंक्ति को रेगेक्स के खिलाफ अलग-अलग जांच सकते हैं। एक्सएमएल को बहुत सरल काम करना चाहिए - बस इसे XmlParse() पर पास करने का प्रयास करें। छवियों जैसे बाइनरी प्रारूप थोड़ा और कठिन हैं, लेकिन पुस्तकालय भी मौजूद हैं।

+0

यह वास्तव में एक अच्छा विचार दिखता है। मैं कोशिश कर रहा हूँ। –

0

मैं अगर यह आपको लेकिन बेन नाडेल मदद कर सकते हैं नहीं जानता लिखा सीएसवी के बारे में excellents पोस्ट:

http://www.bennadel.com/blog/483-Parsing-CSV-Data-Using-ColdFusion.htm

http://www.bennadel.com/blog/976-Regular-Expressions-Make-CSV-Parsing-In-ColdFusion-So-Much-Easier-And-Faster-.htm

http://www.bennadel.com/blog/501-Parsing-CSV-Values-In-To-A-ColdFusion-Query.htm

+0

हां मैंने उन लेखों को पढ़ा है - बेन के बड़े प्रशंसक। वास्तव में मैं वास्तव में क्या देख रहा हूँ। धन्यवाद। –

0

मुझे लगता है कि इसे स्वीकार मूल्य निर्दिष्ट करने के रूप में सरल है कैफाइल में ... दुर्भाग्यवश CF8 दस्तावेज़ कैफाइल के लिए जानकारी के हिस्से के रूप में मान निर्दिष्ट नहीं करते हैं ... यह फ़ाइल प्रबंधन के अंतर्गत है ...

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

CF8 » Controlling the type of file uploaded