Как проверить, что загруженный файл завершен - PullRequest
0 голосов
/ 10 октября 2011

У меня есть система, с помощью которой пользователи могут загружать файл CSV через FTP-сервер или через HTML-форму. С моей стороны, скрипт опрашивает каталог загрузки и обрабатывает новые найденные файлы. Некоторые пользователи создают CSV, экспортируя его из Excel, а другие программно создают его с помощью собственных сценариев.

На данный момент меня беспокоит: как я могу быть на 100% уверен, что файл, с которым работает мой сценарий обработки, завершен - другими словами, это не частичный файл (выполняется, загрузка не удалась и т. Д.)?

Если бы формат файла был чем-то более структурированным, например, XML, я был бы на 100% уверен, что файл завершен, проверив правильность структуры XML (т. Е. Закрывающие теги).

Есть ли хороший способ убедиться, что загруженный файл CSV завершен, без обременения и запутывания менее технических пользователей , которые просто загружают файл, экспортированный из программы для работы с электронными таблицами (т. Е. Предоставляют md5 из содержимое файла будет за их пределами).

Ответы [ 2 ]

1 голос
/ 11 октября 2011

При проектировании форматов файлов CSV в прошлом я всегда добавлял заголовок и строку нижнего колонтитула следующим образом:

id,one,two,three,four,five,six
10,1,2,3,4,5,6
11,1,2,3,4,5,6
12,1,2,3,4,5,6
13,1,2,3,4,5,6
14,1,2,3,4,5,6
FOOTER,5

Большинство форматов файлов CSV имеют заголовок для обозначения столбцов, цельнижний колонтитул означает, что файл завершен.Нижний колонтитул содержит простой счетчик строк, который легко проверять при циклическом просмотре содержимого файла.Не слишком сложный для пользователей.

0 голосов
/ 10 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...