php上传非常大的文件最佳实践

时间:2013-02-14 14:40:56

标签: php file-upload uploadify

这个标题有很多问题,但没人帮忙。我的应用程序应该处理大小高达2 GB的文件上传,它应该通过浏览器完成,而不是像FTP文件上传器那样。
我知道应该在php.ini上进行配置设置。但是我脑子里有一些问题:

  1. uploadify 库这样的文件大小是一个很好的解决方案还是有更好的选择?

  2. 由于尺寸较大,可能需要暂停/恢复功能。是否可以通过浏览器通过HTTP文件传输实现此功能?如果有,怎么样?

  3. 有些人谈论某些类型的漏洞,例如 DOS ATTACKS 。在这种情况下,它是一个严重的问题,这类攻击的考虑因素是什么?

  4. 如果有任何额外的建议和建议,请告诉我他们。

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

    请帮忙。

1 个答案:

答案 0 :(得分:0)

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

它应该有可能让它运转起来,但只有很多工作,而且质量可能很差。

要实现恢复,您需要以下内容:

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

如果这听起来像是一个片状错误系统的配方,那么你就是对的。我不想使用这样的网站上传文件。有太多事情可能出错。

a tutorial here可能会有所帮助,但我仍然认为这不是一个好主意。

如果我是你,我会考虑为你的上传设置一个(S)FTP服务器。这将不那么麻烦。