【问题标题】:correct way to make sure the uploaded file is csv file in grails?确保上传的文件是 grails 中的 csv 文件的正确方法?
【发布时间】:2019-07-13 18:14:44
【问题描述】:

有一个用于上传 csv 文件的文件输入。

这里是多部分文件类的文档。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/multipart/commons/CommonsMultipartFile.html

现在我想确保上传的文件是 csv 文件。换句话说,该应用程序只接受 csv 文件。 commonsmultipartfile 类提供了两种方法。一是内容类型。对于 csv 文件,它返回 application/octet-stream。另一种方法是 originalFilename ,它给出带有扩展名的文件名。

所以我想知道确保上传文件是 csv 文件的最佳方法是什么。我怀疑检查内容类型是不够的,因为 application/octet-stream 是二进制文件的 mime 类型。因此,您是否建议同时使用 contenttype 和 originalfilename 来提取扩展名。我感谢任何指南。谢谢!我正在使用 grails 2.2。

【问题讨论】:

    标签: csv grails grails-2.2


    【解决方案1】:

    您可以使用接受属性来阻止上传具有 .csv 扩展名的文件以外的任何内容,例如

    <input class="form-control" required="required" type="file" name="csvfile" id="csvfile" accept=".csv" />
    

    这不会阻止某人更改扩展名,例如一个 xslx 文件并尝试上传但是,我倾向于在流式传输文件时解析一两行,如果它与我期望的模式不匹配则拒绝它。 当然,这对于您的解决方案可能并不实用。

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 2021-12-27
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2016-02-26
      相关资源
      最近更新 更多