【问题标题】:How to validate that an uploaded file is complete如何验证上传的文件是否完整
【发布时间】:2011-10-11 07:01:46
【问题描述】:

我有一个系统,用户可以通过该系统通过 FTP 服务器或通过 html 表单上传 CSV 文件。在我这边,一个脚本会轮询上传目录并处理找到的新文件。一些用户会通过从 Excel 导出来创建 CSV,而其他用户会使用自己的脚本以编程方式创建它。

我现在担心的是:如何 100% 确定我的处理脚本所作用的文件是完整的 - 换句话说,它不是部分文件(正在进行中、上传失败等)?

如果文件格式更结构化,比如 XML,我会通过检查 XML 结构是否有效(即:结束标签)来 100% 确信文件是完整的。

有没有一种好方法可以确保上传的 CSV 文件完整,不会给技术含量较低的用户带来负担和困惑,他们只是上传从电子表格程序导出的文件(即:提供 md5文件内容会超出它们)。

【问题讨论】:

    标签: validation csv upload


    【解决方案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 文件格式都有一个标题来标记列,页脚的目的是指示文件已完成。页脚包含一个简单的行数,在循环文件内容时很容易审核。对用户来说不太复杂。

    【讨论】:

    • 我认为这可能是最好的方法,并且对最终用户来说相当简单。
    【解决方案2】:

    只要上传文件的文件大小与原始文件的文件大小匹配,您就可以进行交叉检查。

    【讨论】:

    • 这对于通过 html+php 表单上传的文件来说有点容易,因为我可以访问原始文件的属性。但是,我不确定如何处理通过 FTP 上传的文件。
    • 是的。您应该能够让您的服务器在上传初始化时保存信息,可能会保存到数据库(文件名、id、文件大小)当您的 endscript 验证和转换时,让它从数据库中获取详细信息并根据文件检查它以进行验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2010-11-15
    • 2021-04-28
    • 2013-11-16
    • 2021-12-30
    • 2010-12-13
    相关资源
    最近更新 更多