Как определить, является ли загружаемый файл действительным файлом CSV или хотя бы текстовым в ColdFusion 8? - PullRequest
5 голосов
/ 01 июня 2011

У меня есть форма, которая позволяет пользователю загружать файл на сервер.Как я могу проверить, что загруженный файл на самом деле является ожидаемым форматом (CSV, или, по крайней мере, подтвердить, что это текстовый файл) в ColdFusion 8?

Ответы [ 3 ]

4 голосов
/ 02 июня 2011

Для простых форматов, таких как CSV, просто проверьте себя, например, через regex.

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

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

Вы можете установить дополнительные проверки в отношении ограничений на размер файла или запрещенных символов.

Для других форматов файлов вы можете проверить подписи заголовка , которые появляются в первых нескольких байтах файла.

Вы могли бы даже написать полный анализатор для ожидаемого формата файла - для проверки CSV вы можете сделать ListToArray() в CR / LF и проверить каждую строку по отдельности на соответствие регулярному выражению. XML также должен работать довольно просто - просто попробуйте передать его на XmlParse(). Бинарные форматы, такие как изображения, немного сложнее, но и там есть библиотеки.

0 голосов
/ 04 июня 2011

Я думаю, что это так же просто, как указать значение accept в cffile ... К сожалению, документы CF8 не указывают это значение как часть информации для cffile ... Оно находится под управлением файла ...

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

CF8 »Управление типом загружаемого файла

0 голосов
/ 02 июня 2011
...