php - 用户文件上传存储的最佳实践

标签 php mysql database-design file-upload

<分区>

我们只是在内部建立了一个开源的基于 PHP/MySQL 的软件解决方案,几乎所有它都按照我们想要的方式工作,但文件上传不是我们想要的。目前,它处理“上传”的唯一方法是存储/显示远程 URL,但我们需要将其保留在内部。

是否有关于如何存储上传的用户文件的最佳实践?它们应该存储在文件系统中还是数据库中?每种方法的优点/缺点是什么?鉴于它已经使用了 PHP 和 MySQL,是否更容易实现?有没有更好的混合方法?

最佳答案

我通常会做什么的大致概述:

  1. 将文件本身存储在文件系统中,而不是数据库中。数据库擅长存储数据,文件系统擅长存储文件。最好将每个人都用于他们擅长的事情,即使你可以做不同的事情(我的意见)。

  2. 将文件存储在您的网络根目录之外。这将使控制对它们的访问变得更加容易。

  3. 由于它们在您的网络根目录之外,您现在无法直接链接到这些文件,因此创建一个脚本来为文件本身提供服务。您会将数据库中的某种文件标识符传递给脚本,脚本会在数据库中查找文件的实际路径,然后提供文件的内容。如有必要,该脚本还可以进行用户访问检查。

关于php - 用户文件上传存储的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041953/

相关文章:

php - mysql_connect() 访问被拒绝

mysql - 如何使用 JOIN 连接两个表

java - 如何实现 "Shared database, separate schema" Multi-Tenancy 策略

mysql - 如何获取属于用户的所有记录并仅显示具有不同名称的记录?

php - 如何将 Zend Framework 2 和 Mongodb 与 shanty mongo 库集成,

php - paypal 集成支付

MySQL 调度冲突

php - 加入两个表和总计问题

mysql - 总账科目代码格式

php - 在 php 中长时间运行的全局计时器