请求接受大文件上传的建议

时间:2012-03-02 10:36:30

标签: php file upload

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

我在寻找答案时已经做了大量的谷歌搜索,但是当我不确切地知道我在寻找什么时,这很困难。

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

由于我没有这种项目的经验,所以我对这样一个应用程序需要什么样的服务器设置也很不满。

我已经提出了一些想法,但如果不合理的话,我愿意让他们改变:

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

基本上,想象一下我想建立像wetransfer.com或yousendit.com这样的文件发送应用程序,你会得到一般的想法。

我熟悉所有常见的PHP文件上传问题(检查mime-types,upload_max_filesize,memory_limit等等),这些话题在互联网上有99%的帖子所涉及,但显然这个项目有点儿超出平均水平,一般的头像上传脚本。

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

提前致谢!

P.S。我不是100%确定这是否是发布此问题的正确StackExchange网站。我还考虑过serverfault.com和webmasters.stackexchange.com。如果您认为其他地方的问题会更好,请告诉我。

1 个答案:

答案 0 :(得分:1)

如果您通过PHP汇集上传,则需要确保它接受这些大文件。特别是upload_max_filesize,post_max_size和max_input_time。有关常规说明,请参阅POST method uploads

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

虽然我从未使用过Amazon S3,但我认为您无法从任何客户端上传数据 - 至少在没有某种身份验证的情况下也是如此。您可能需要通过自己的服务器汇总上传内容,以便将其推送到S3。