【问题标题】:How to check image file size through PHP before uploading to Amazon S3?如何在上传到 Amazon S3 之前通过 PHP 检查图像文件大小?
【发布时间】:2014-01-31 16:01:32
【问题描述】:

我刚刚有一个关于检查图像文件大小的问题。在图像直接上传到 S3 之前,你如何在 PHP(服务器端)甚至通过 javascript 中做到这一点?另外由于个人原因,我无法使用 HTML5 来实现。

我知道一些解决方案,例如首先上传到我自己的服务器以在那里进行检查,然后上传到 S3。但这会占用大量带宽,因此超出了解决方案的范围。

非常感谢。

【问题讨论】:

  • 我很想知道反对 HTML5 的原因 :)
  • 客户端测试无论如何都是没有意义的,因为你不能信任客户端。
  • 是的。我只是好奇而已。至于问题:我确定S3 API中应该有一个方法......
  • 大家好,感谢您的快速回复。 @Pointy,如果客户端测试毫无意义,为什么很多人推荐 HTML5 文件 api,或者这在服务器端是否有效?
  • @Dominik,感谢您的推荐。我会调查的。

标签: javascript php amazon-s3


【解决方案1】:

如果您想在将文件发送到 S3 之前检查文件大小,并且直接将其发送到 S3 而不将其发送到您首先控制的服务器,您唯一的选择是检查每个文件的 size 属性File 或 Blob 您将发送到您的 S3 存储桶。这在所有支持 File API 的浏览器中都是可能的,这几乎是除了 IE9 和更早版本的所有浏览器。对于较旧的浏览器,您无法在客户端测试尺寸。

我不确定您为什么在问题中提到 PHP,同时说您不想将文件发送到您首先控制的服务器。如果您想在通过一些 PHP 将文件发送到 S3 之前检查文件的大小,那么您当然必须先将文件发送到您的服务器,因为 PHP 是一种服务器端语言。如果您确实不想将文件发送到您的服务器,您当然可以通过浏览器将文件直接发送到 S3,如果浏览器支持 File API,请先检查大小。这通常发生在 Fine Uploader 中,我维护的一个库支持从浏览器直接上传到 S3,而无需将文件发送到您首先控制的服务器。

【讨论】:

  • 感谢您的回答。你是对的,我的问题确实有矛盾。对此感到抱歉。我想我将不得不在我提出的两个解决方案之间做出决定,或者甚至可能使用您的建议。我也感谢您的方便回答。
  • 嗨,谢谢!但是如何处理用户更改您的 js 验证代码并上传超过允许大小的内容?
  • 好的,我认为解决方案是在政策中指定它,如下所示:stackoverflow.com/questions/13390343/…
  • @dowi 抱歉,这已经晚了,但谢谢!这真的很有帮助。干杯!
猜你喜欢
  • 2018-03-03
  • 2015-04-11
  • 2022-01-10
  • 2015-04-29
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
相关资源
最近更新 更多