【发布时间】:2011-11-24 05:11:12
【问题描述】:
我想将上传的用户头像等文件保存到MongoDB中的用户集合中,我猜步骤是:
- 用户上传图片;
- 使用 FileHandler (IHttpHandler, Asp.net) 接受 Web 服务器中的文件流;
- 然后我获取该文件二进制文件并将其设置为用户类对象
- 最后保存对象,这样用户集合就会得到文件二进制数据。
我说得对吗?你能给我一点线索吗?
【问题讨论】:
-
您使用的是什么客户端语言(我猜是 C# 之类的,但我不确定)?
-
是的,我用过 C#,我知道 GridFs 可能是一种解决方案,但它只是用于大文件存储和方便使用分片或副本的东西,我搜索谷歌并找不到我面临的类似情况。
-
我在浏览器中将二进制数据转换为 img 得到了很好的参考:forums.asp.net/p/1505985/3574567.aspx
-
GridFS不仅用于存储大文件。如果您将文件直接存储在用户文档中,要记住的一件事是,您必须在每次查询用户时加载和传输该数据,而不是仅在需要时加载和传输该数据。相反,当您只需要文件时,您必须加载用户文档的其余部分。 -
是的,我认为你是对的。我认为是一次性检索整个用户数据,包括 avator 二进制文件,然后查看页面获取模型并组合 img 标签的数据---我认为现在是错误的,你不能通过 html 协议传输二进制数据, handler 这个额外的工作应该做,将二进制转换为可以存储在隐藏输入中的文本,下一步也是一个艰难的步骤,将文本转换为 img 对象,这个可行性提醒模糊。我认为另一种方法是使用额外的集合来存储图像,因为@dcrosta 说,顺便说一句。谢谢
标签: c# asp.net mongodb save-image