【问题标题】:Requesting advice for accepting large file uploads请求接受大文件上传的建议
【发布时间】:2012-03-02 10:36:29
【问题描述】:

我正在考虑构建一个包含文件上传元素的网络应用程序。我希望用户能够上传任何类型且相当大的文件(例如,最大 100MB)。这将是一个可公开访问的站点,因此安全性显然非常重要。

我已经进行了大量的谷歌搜索来寻找答案,但是当我真的不知道我在寻找什么时,这很困难。

我的经验主要是 PHP,但我意识到 PHP 在文件上传方面并不是最好的,所以如果有必要我很乐意看看其他语言。虽然,如果可以实现使用 PHP 的体面解决方案,那将是可取的。

由于我对此类项目没有经验,因此对于此类应用程序需要什么样的服务器设置,我也一无所知。

我已经脑补了一些想法,但如果不合理,我愿意让步:

  • 如果可能,我想使用 Amazon S3 来存储文件(以减少服务器上的负载)
  • 我希望能够在上传后重命名文件
  • 我正在考虑将 Uploadify (uploadify.com) 用于客户端

基本上,假设我正在寻找构建像 wetransfer.com 或 yousendit.com 这样的文件发送应用程序,您就会明白大致的想法。

我熟悉所有常见的 PHP 文件上传问题(检查 mime-types、upload_max_filesize、memory_limit 等),互联网上 99% 的关于这个主题的帖子都涵盖了这些问题,但显然这个项目相当不错超出一般的普通头像上传脚本。

我知道这是一个庞大的话题,我显然不希望有人给我一个神奇的解决方案,但基本上我正在寻找一些关于从哪里开始的指示。任何人都可以推荐任何可以让我更好地了解任务要求的好书、文章或网站吗?涵盖从编程到服务器要求的所有内容?即使它只是我应该在谷歌上搜索的关键字或短语列表。

提前致谢!

附:我不是 100% 确定这是否是发布此问题的正确 StackExchange 站点。我还考虑了 serverfault.com 和 webmasters.stackexchange.com。如果您认为这个问题最好在其他地方提出,请告诉我。

【问题讨论】:

  • 你的问题有点对于具体代码的问题来说太宽泛了。我会说它属于网站管理员。
  • @hakre 谢谢你的建议,我会试试看的。
  • 你不需要,如果票数足够,问题会自动移动。
  • @hakre 好吧,没意识到!

标签: php file upload


【解决方案1】:

如果您通过 PHP 集中上传,您需要确保它接受这些大文件。特别是upload_max_filesize、post_max_size 和max_input_time。请参阅 POST method uploads 了解一般操作方法。

使用Resumable.js,您可以很好地规避上述限制。它一次上传 100MB 的小块。这允许它跟踪上传的内容以允许暂停/恢复上传。

虽然我从未使用过 Amazon S3,但我不相信您可以从任何客户端上传数据 - 至少在没有某种身份验证的情况下不能。您可能必须通过自己的服务器将上传集中起来,才能将其推送到 S3。

【讨论】:

  • 感谢有关 resumable.js 的提示。虽然,我只是快速浏览了一下,因为它依赖于 HTML5 File API,所以浏览器支持非常有限。但我一定会好好看看,谢谢。
  • 您始终可以为功能强大的浏览器提供良好的解决方案 (HTML5),并为旧浏览器提供备用方案(例如使用 Flash)。这将被称为“渐进式增强”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2018-10-04
相关资源
最近更新 更多