PHP上传和下载文件

时间:2017-02-24 15:24:21

标签: php mysql ftp

我在如何在PHP网站上实现文件上传和下载方面面临两难选择。

我有以下标准:

  1. 效果 - 不会给网站带来性能问题
  2. 文件大小 - 大约2GB及以上。
  3. 授权 - 我希望能够更改谁可以访问PHP中的文件。允许多个用户访问单个文件。
  4. 用户友好 - 无需使用其他工具。
  5. 以下是我目前正在研究的方法,以及我如何根据我的标准对其进行评估:

    数据库BLOB

    1. 将文件数据写入输出流需要时间并阻止其他请求(这是正确的吗?)
    2. 我在某处读到了BLOB的大小限制。
    3. 好的 - 我可以轻松控制谁可以在这里下载文件。
    4. 好的 - 没有其他工具,只有网站。
    5. FTP

      1. 好的 - 因为它旨在存储文件。
      2. 确定 - 文件系统是限制。
      3. 除了网站的用户名和密码之外,我还需要为每个用户创建另一个凭据。我假设我必须将文件从一个位置移动到另一个位置以更新授权,但是如果多个用户可以访问一个文件呢?共享目录?它看起来很乱。
      4. 需要其他工具/程序来访问他们的文件,需要记住另一个用户名和密码。
      5. 我的问题:

        1. 根据我的假设,你是否正确理解方法?
        2. 如果我的假设是错误的,有没有办法在符合我的标准的情况下执行此功能?
        3. PS请原谅我的英语。

2 个答案:

答案 0 :(得分:3)

为什么不在文件系统中另外使用文件系统来存储文件并存储给定文件的路径(如果需要,还可以存储权限)。

上传文件夹无法从公众访问,包装脚本将内容提供给用户。

  1. 当您将上传的文件移动/复制到专用数据目录时,性能不应该成为问题。
  2. 文件大小不是问题(只要你有足够的磁盘空间)
  3. 包装器脚本处理权限并向用户提供文件
  4. 当你设计你的ui时,它是友好的

答案 1 :(得分:2)

对我来说BLOB的使用并不是最好的。我想BLOB在我自己的网站上传图片,但上传文件的最好方法是将它们直接放在你的本地服务器上。