我有一个系统,用户可以通过FTP服务器或html表单上传CSV文件。在我的最后,脚本轮询uploads目录并处理找到的新文件。一些用户将通过从Excel导出CSV来创建CSV,而其他用户将使用他们自己的脚本以编程方式创建CSV。
我目前关注的是:我如何100%确定我的处理脚本所处理的文件是否完整 - 换句话说,它不是部分文件(正在进行,上传失败等)?< / p>
如果文件格式是更结构化的,比如XML,我会100%确信文件是完整的,检查XML结构是否有效(即:结束标记)。
是否有一种很好的方法可以确保上传的CSV文件完整,没有负担和&amp;混淆技术较少的用户只是上传从电子表格程序导出的文件(即:提供文件内容的md5将超出他们)。
答案 0 :(得分:1)
过去设计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文件格式都有标题来标记列,页脚的目的是指示文件已完成。页脚包含一个简单的行数,在循环浏览文件内容时很容易进行审计。对用户来说并不复杂。
答案 1 :(得分:0)
只要上传文件的文件大小与原始文件的文件大小匹配,就可以进行交叉检查。