PHP MYSQL上传文件并存储为blob

时间:2010-06-23 17:12:58

标签: php javascript mysql

我正在尝试创建在PHP中上传文件的功能,并将其作为BLOB存储在我的mysql数据库中。

我遇到了一些需要帮助的问题。第一个问题是如何在不使用表单的情况下执行此操作?我目前正在使用codeigniter框架,我不希望表单对操作执行任何操作,我更喜欢使用javascript / ajax / jquery来获取我的值并执行文件转换为字节然后插入blob,< / p>

我遇到的主要问题是在FF3中我无法获取输入文件的路径名。我发现这是一个已知问题,我似乎无法找到解决方法。

最后我对此不清楚,但是在将其放入数据库之前,是否必须将文件上传到临时目录?我想只编码文件并插入它但我对这些正确的步骤感到困惑。

您拥有的任何信息或好的教程都会很棒。感谢

1 个答案:

答案 0 :(得分:2)

我建议你重新考虑整个方法。

有一类数据库经过高度优化,可用于存储文件数据。这些被称为“文件系统”。除非你有一个非常明确,清晰,有理由想要将文件存储为RDBMS中的BLOB,否则你应该退一步思考你正在做什么。

至于你的表格问题,我不确定你想做什么。听起来你只想要一个ajax-y文件上传。这是可行的。但是,潜在的机制必须是一种典型的形式。在任何浏览器中,您都无法从Javascript获取文件数据(甚至是它的路径)。这不是一个“已知问题” - 它是一个安全功能。如果在后台秘密地在硬盘上查找个人数据,你会怎么样?

有很多关于通过jquery处理文件上传的教程,我会从那里开始。

一旦您可以发布文件(以及任何相关的元数据),请查看CodeIgniter的表单/文件处理。我没有使用CI,所以我在那里帮助不大。

然后,我建议您认真考虑将文件存储在文件系统中,并简单地在数据库中存储(相对)路径。我敢肯定,如果我认真思考,我可以想出一个很好的方案来存储数据库中的文件数据,但是当时我需要输入这个答案,我还没有想出一个。