我正在使用ASP.NET MVC网站,我的部分要求是用户能够互相发送消息。如果我需要能够处理ASP.NET MVC中的附件,您将如何设计消息传递功能?
从表面上看,这不是一项艰巨的任务。消息以其最简化的形式仅仅是一个“消息”表,其中包括诸如“SenderID,ReceiversID(FK),主题,消息”等内容。
但是,您将如何处理“附件”?用户可以浏览我们网站上的包含财务信息的机密PDF文件,并且他们可以点击“发送报告到”按钮将报告发送给其他用户以及文本消息。
同样,他们将能够上传多个文件,并将它们与他们的消息一起发送(而不仅仅是他们可以浏览的内部文档)。
你将如何在ASP.NET MVC中处理这个问题?
我考虑过有附件文件夹和附件表,所以如果用户点击“发送报告到”或上传文件,该文件被复制到附件文件夹,并在附件表中创建一个条目。
然后,如果用户点击具有类似/ messaging/attachments/{fileID}之类的路线的链接,它将向其发送适当的文件。我甚至可以维护附件/文件表中每个文件的校验和,所以如果用户发送相同的报告,我们将不会复制附件文件夹中的文件。
在某种程度上,我觉得我正在重新发明电子邮件,但客户坚持认为,为了保持安全合规性,我们不能简单地将这些报告通过电子邮件发送给我们的用户,他们必须登录我们的系统才能检索他们。
这是正确的方式去这样的事情,或者我应该看看不同的方法?
这基本上是我该怎么做的。 – 2009-12-08 21:16:04
想法似乎没问题。如果您使用SQL Server 2008,则可以考虑使用FILESTREAM。它使访问文件更容易。 – LukLed 2009-12-08 21:53:20
这就是我也会这么做的......只要你没有,考虑使用GUID作为fileID的含义 - 这只是另一层安全性(通过默默无闻)。这是我经常使用的(注意使用GUID而不是int的额外开销)。 – 2009-12-09 02:26:55