Вы можете подключиться к любому из этих событий: https://www.progress.com/documentation/sitefinity-cms/for-developers-dynamic-modules-events
, например. IDynamicContentUpdatingEvent или IDynamicContentUpdatedEvent и выполнить свою логику.
Будьте внимательны, поскольку эти события могут срабатывать несколько раз, один раз для предмета Temp и снова для предмета Master, так что вы можете проверить это.
Определение типа MIME файла не является чем-то легким, чтобы сделать, особенно если разделы ASCII могут быть смешаны с двоичными единицами.
На самом деле, когда Вы смотрите на то, как почтовая система Java действительно определяет тип MIME электронного письма, это действительно вовлекает чтение всех байтов в него и применение некоторых "правил".
Выезд MimeUtility.java
- Если основной тип этого источника данных является "текстом" и если всеми байтами в его входном потоке является US-ASCII, то кодирование составляет "7 битов".
- Если больше чем половиной байтов является неUS-ASCII, то кодирование является "base64".
- Если меньше чем половиной байтов является неUS-ASCII, то кодирование "заключается в кавычки - печатаемый".
- Если основной тип этого источника данных не является "текстом", то, если всеми байтами его входного потока является US-ASCII, кодирование составляет "7 битов".
- Если существует даже один символ неUS-ASCII, кодирование является "base64".
@return
"7 битов", "заключенных в кавычки - печатаемый" или "base64"
Как упомянуто mmyers в удаленном комментарии, JavaMimeType, как предполагается, делает то же самое, но:
:
File file = new File("/home/bibi/monfichieratester");
InputStream inputStream = new FileInputStream(file);
ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();
int readByte;
while ((readByte = inputStream.read()) != -1) {
byteArrayStream.write(readByte);
}
String mimetype = "";
byte[] bytes = byteArrayStream.toByteArray();
MagicMatch m = Magic.getMagicMatch(bytes);
mimetype = m.getMimeType();
Так..., так как Вы читаете все содержание файла так или иначе, Вы могли использовать в своих интересах это для определения типа на основе того содержания и собственных правил.
Волшебство Пантомимы Java может быть полезным. Это проанализирует типы пантомимы из файлов и inputstreams. Я не могу ручаться, поскольку это - функциональность, как бы то ни было.
Эта ссылка может обеспечить дальнейшую информацию. Это обеспечивает несколько различных средств определения, как сделать то, что Вы хотите (или по крайней мере что-то подобное).
Я, возможно, испытал бы желание записать что-то характерное для Вашей проблемной области. например, определяя количество разделенных от запятой значений на строку и отклоняя, если это не в определенных пределах. Затем разделенный на запятых и синтаксическом анализе каждая запись согласно требованиям (например, они удваивать/пускать в ход/допустимые строки - и если строки, что кодирование). Я думаю, что Вам, вероятно, придется сделать это так или иначе, учитывая, что кто-то может загрузить файл, который запускается как CSV, но повреждается на полпути через.