上传后的小文件应该写入数据库还是直接保存在服务器的文件夹中?
很多网站都有上传图片之类的上传小文件的功能。于是我就想提出疑问:上传后的小文件是应该把文件化成二进制流的方式写入数据库;还是直接保存在文件夹中,仅仅在数据库中存储文件保存...
很多网站都有上传图片之类的上传小文件的功能。
于是我就想提出疑问:
上传后的小文件是应该把文件化成二进制流的方式写入数据库;还是直接保存在文件夹中,仅仅在数据库中存储文件保存的地址呢?抑或是其他的方法呢?
求正解……
开发语言:C#
数据库:sql08
软件:vs08 展开
于是我就想提出疑问:
上传后的小文件是应该把文件化成二进制流的方式写入数据库;还是直接保存在文件夹中,仅仅在数据库中存储文件保存的地址呢?抑或是其他的方法呢?
求正解……
开发语言:C#
数据库:sql08
软件:vs08 展开
6个回答
展开全部
个人认为 应该是根据用户上传的文件不同选择不同的存储方式.例如"图片"存数据库,"程序"存路径
"歌曲" 存路径 也许有100个人同时上传保存同一首歌曲,就应该只保存1个mp3文件.其他的都引用保存路径 等等...... 哎,任务难做啊.
"歌曲" 存路径 也许有100个人同时上传保存同一首歌曲,就应该只保存1个mp3文件.其他的都引用保存路径 等等...... 哎,任务难做啊.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人觉得是直接保存到文件夹中,然后在数据库中存储文件保存地址,可以把文件夹的名称设置为一个guid, 或者一个用户 一个文件夹。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小文件其实可以保存在服务器上特定目录,数据库中记录文件名和格式,小文件转化成二进制文件保存。使用时再转化回来。
也可以 BLOB格式存储到数据库中。
这两种方法都是可以实现的。
只不过各有优缺点。
直接存储到数据库中当数据库备份时,小文件同时被保存,不会出现遗漏。
本地文件存储时备份数据库时,小文件转化成的二进制文件没有被保存,日后恢复恐怕比较难。
另外,二进制文件被替换后,就不能被程序正确处理,存在安全隐患。你懂吧~
而直接存储到数据库中,文件大小应该是有限制的,太大的文件不宜存储于数据库中。
其实具体到程序中,可以作成可以手工配置的,可以选择存储方式,可以选择文件大小限制。
这样即使客户的需求有变化,也可以自己变更,不需要更改代码。
也可以 BLOB格式存储到数据库中。
这两种方法都是可以实现的。
只不过各有优缺点。
直接存储到数据库中当数据库备份时,小文件同时被保存,不会出现遗漏。
本地文件存储时备份数据库时,小文件转化成的二进制文件没有被保存,日后恢复恐怕比较难。
另外,二进制文件被替换后,就不能被程序正确处理,存在安全隐患。你懂吧~
而直接存储到数据库中,文件大小应该是有限制的,太大的文件不宜存储于数据库中。
其实具体到程序中,可以作成可以手工配置的,可以选择存储方式,可以选择文件大小限制。
这样即使客户的需求有变化,也可以自己变更,不需要更改代码。
更多追问追答
追问
我不明白你的意思……你这里只说写入数据库中,好似没有本地保存。而且你说的安全隐患是指写入数据库还是本地保存?具体隐患是什么?
请你给我个详细回答,我会给你追加分数的……
追答
写入数据库就是直接以数据库中的一个字段存储一个小文件,BLOB类型的数据,你上网查查就知道了。这中存储在数据库中的数据在本地是没有保存的,因为是直接从数据库中读取的。
直接存储在本地的话,如果黑客入侵到你的数据服务器,修改服务器上存储的小文件后,你的小文件就发生了变更,这就是安全隐患,怎么不明白?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询