PHP Move_uploaded_file()或ftp_put()用于2GB以下的文件

时间:2012-12-18 19:37:43

标签: php file-upload ftp

我将处理客户将用于上传原始图像/长pdfs /等的大文件(最大2GB)。我在网上看到PHP并不是最好的解决方案,但我不能让每个客户端下载一个FTP程序,让我为他们创建一个用户名/目录,并给他们一个密码只是为了上传一个文件。

我要问的是什么是更好,更快的功能,或者无关紧要? ftp_get()或move_uploaded_file()?有没有更好的方法可以使用PHP实现这一目标?

我在想,因为它是ftp,ftp_put会更快更可行,但我不确定这就是为什么我会问这个问题。

感谢您的意见。

2 个答案:

答案 0 :(得分:1)

上传文件后,您必须始终使用move_uploaded_file()。这是将文件从临时存储移动到您想要存储的位置(通常是应用程序树中的uploads / dir)。

ftp_put()是将该文件再次从站点移动到另一台FTP服务器。

答案 1 :(得分:0)

这不是同一份工作。

首先,您的用户将文件直接上传到您的服务器,然后使用move_uploaded_file进行处理。

enter image description here

  • 优点:用户不需要先在ftp服务器上发送文件。
  • 缺点:您直接参与通常连接速度较慢的用户,这要求您允许非常长的连接,这可能会造成危险。

第二种情况,您的用户将文件上传到FTP服务器,为此类上传而构建。然后,您将下载一个通常位于具有良好带宽和上传速度的远程服务器上的文件。

enter image description here

  • 优点:您无需配置Web服务器来处理非常长的连接和非常大的输入,从而提高安全性。下载通常会更快,因此用户会觉得您的服务并不那么慢。
  • 缺点:您的用户需要将文件发送到ftp,这对于甚至不知道它是什么的人来说都不是很方便。

更好的解决方案应该是根据文件大小提供两个选项。

enter image description here

你把你的FTP放在与网络服务器相同的服务器上,这样你就可以直接在没有ftp_get的文件系统中访问文件,这应该更快。