繁体   English   中英

php上传超大文件的最佳做法

[英]php upload very large file best practice

这个标题有很多问题,但没有人帮助。 我的应用程序应该处理最大2 GB的文件上传,并且应该通过浏览器完成,而不是像FTP文件上传器那样。
我知道应该在php.ini上完成配置设置。 但是我心中有一些问题:

  1. 对于这种文件大小,是否有类似uploadify库的好的解决方案,还是有更好的选择?

  2. 由于尺寸较大,可能希望在其中具有暂停/恢复功能。 是否可以通过浏览器通过HTTP文件传输来实现此功能? 如果是,该怎么办?

  3. 有人谈论某些类型的漏洞,例如DOS ATTACKS 在这种情况下是否是一个严重的问题?对此类攻击有何考虑?

如果还有其他建议和建议,请告诉我。

更新:有人建议使用FTP文件上传来完成这项工作。 是否应该通过为每个用户指定一个FTP帐户来允许他们使用FTP客户端(例如FileZilla)上传文件来完成此操作? 如果是这样,应该如何处理传入的流程。 例如,我给每个用户一个目录,例如/ home / user1,然后他将文件上传到该目录中。 现在,我应该如何根据用户会话数据获取上载的文件数据并将其保存到数据库中。
通常,我的意思是如何在此FTP文件上传系统上编写脚本?
或如果不可能,请告诉我。

请帮忙。

暂停/恢复不是HTTP上传的标准功能。

应该有可能使其正常工作,但是只有大量工作才能完成,而且质量可能很不稳定。

要实施恢复,您需要满足以下条件:

  • 一个可以查询服务器并询问已经上传了多少文件的Javascript前端。
  • Javascript还需要能够在浏览器中将上传文件分解为多个块(对于拥有2GB文件的用户,这将是非常痛苦的),并从先前停止上传的位置开始进行上传。
  • 由于HTTP请求一次性发送了整个文件,因此,如果您希望能够暂停,则Javascript也需要分块发送,并且具有事件处理程序,如果用户按下“取消”,该事件处理程序将中止下一个块。
  • 您的PHP程序会将每个简历视为一个完整的新文件上传,因此它需要知道它正在接收现有文件的新块,并使用append模式。

如果这听起来像是一个片状且易出错的系统的秘诀,那么您将是对的。 我不想使用这样的网站来上传文件。 有太多事情可能出错。

这里有一个教程可能会有所帮助,但我仍然认为这不是一个好主意。

如果您是我,我会考虑为您的上传设置(S)FTP服务器。 这将减少很多麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM