【问题标题】:Restricting file type on blobstore upload in Google App Engine (Java)在 Google App Engine (Java) 中限制 Blobstore 上传的文件类型
【发布时间】:2012-06-02 12:29:44
【问题描述】:

我正在使用 BlobstoreService 将文件上传到 AppEngine 中的 blobstore。如何限制文件的内容类型或文件类型?例如,我只想允许上传图片/jpeg 文件。

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    没有办法禁止用户先验地上传被禁止的文件类型,因为在他们进行 POST 之前,您无法知道他们将要上传什么,并且没有干净的方法可以中途终止 POST 请求.您可以在他们上传文件后检测文件类型,如果禁止,则从 blobstore 中删除文件。

    【讨论】:

    • Nick,为什么不改用 File API?您可以按 Mime 类型进行过滤,然后决定将其丢弃或保存到 blobstore。
    • @systempuntoout 因为它不会为您带来任何好处 - 在您执行任何检查时,用户已经将整个文件上传给您。使用常规上传还会将您的文件大小限制在内存中可以容纳的大小和请求大小配额之下。
    • 是的,我同意,尽管我更关心的是计费方面。
    • @systempuntoout 无论哪种方式,您都要为带宽付费,而您立即删除的内容的存储成本几乎为零。此外,上传内容被拒绝的人的总比率将是微不足道的,不值得优化。
    【解决方案2】:

    当然,Nick 的答案是正确的,您需要在服务器端进行一整套检查(类型、大小等)。但是,如果您真的很担心,您可能会考虑在客户端进行一些基本的错误检查。 JavaScript 在提交表单之前检查文件名是否以 jpg 结尾(加上变体)很容易实现。请记住也要检查服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2014-05-08
      • 2012-10-05
      • 1970-01-01
      • 2011-03-25
      • 2013-12-16
      • 2020-03-09
      相关资源
      最近更新 更多