提供上传文件,将文件写入硬盘,获取完整路径(字符串)添加到数据库CakePHP中

时间:2013-08-10 16:25:35

标签: php cakephp cakephp-2.3

由于我只是在尝试这个,(只有本地主机),我可能想问一些想法(因为没有任何事情真的出现在我脑海中),关于让一个用户,例如,他将注册到迷你社交网站,具有相应的用户名/密码,个人详细信息等。我会上传图像,并将其保存到文件夹中(例如,在我的硬盘上,可以是驱动器C:\或D :),例如' / images / username'和文件夹的完整路径将插入到名为img_dir的行中(当然它是一个字符串,而不是将其作为BLOB,所以稍后我会使用img src =“path” )。我不介意它会被保存在哪里。但由于我是cakephp的新手,我还没有真正理解我将要做的事情。我对注册/登录会话没有任何问题。这在C#中很容易,但我对PHP来说太愚蠢了? :P

2 个答案:

答案 0 :(得分:0)

虽然这可能无法为您提供CakePHP的直接解决方案,但您已经提出了一些想法。

我概述了在this post中将文件存储在文件系统中的优缺点(以及其他一些方法)。

希望有帮助...

答案 1 :(得分:0)

I've written a complete plugin for that kind of task并且更加考虑了保存文件路径的想法。

一个文件有更多的元数据,比如它的大小和mime类型,这在提供文件时很有用。因此,上传的文件应该作为它自己的实体来处理。我个人认为直接将路径保存到它所属的记录中的文件是一个坏主意。如果您以后需要两张图片,会发生什么?添加路径1,路径2?

等递增字段

最好有一个单独的表格用于文件和关联记录与这些文件记录。在CakePHP关联中表示:例如,用户有一个头像或者图库有很多图像。

如果你在文件系统的同一级别内获得了很多目录和文件,那么保存文件就像上传这样上传\ username1 \ pic.jpg可能会导致应用程序因文件系统性能问题而变慢。

但是,请检查我的插件readme.md,还有更多关于它为什么会这样做以解决您可能遇到的各种问题。