【问题标题】:Two MVC projects - Image sharing两个MVC项目——图片分享
【发布时间】:2012-05-09 04:34:05
【问题描述】:

这里是:

我在解决方案中有 2 个 MVC3 项目,其中一个用于管理员,另一个用于普通用户。 管理员在其项目的文件夹中动态上传图像。 所以我想从 User 项目中获取这些图像以显示在相同的网页中。

我还有代表服务、应用逻辑和数据访问的三个项目。

我一直在寻找解决方案并发现了同样的事情: 1-将图像存储在数据库中,然后从服务将其检索到用户项目。 2- 引用来自用户 MVC 项目的图像。 (做不到)

什么是最好的方法? 我如何实现第一个?

谢谢!

【问题讨论】:

    标签: asp.net-mvc-3 image multi-tenant


    【解决方案1】:

    首先,您有两个应用程序,而不是一个应用程序的管理区域仅限授权用户,这是有原因的吗?

    至于将图像存储在数据库中,您可以将图像转换为字节数组并将其作为 varbinary(max) 存储在数据库中。

    这个问题展示了一个将文件流(我假设您正在通过表单上传图像)转换为字节数组的示例:Convert a bitmap into a byte array

    【讨论】:

    • 拥有一两个项目没有限制。我这样做只是为了防止项目可以部署在不同的服务器上。我真的不了解区域,我会阅读它们
    • 正如我所建议的,我可能会建议只使用一个 Web 应用程序并使用 MVC 区域来分离管理功能。与存储在文件系统上相比,保存到数据库而不是文件仍然是一个有用的步骤。无论哪种方式都可以很好地工作。
    • 我明白了。另外,我正在实施的解决方案是针对多租户应用程序,我唯一知道租户的就是获取控制器中的子域,然后从具有该租户名称的服务中获取信息。我会遇到 MVC 区域和多租户问题吗?
    • 确定用户的有趣方式...不确定我自己会这样做,但如果您要这样做,我可能会建议创建一个自定义 ActionFilterAttribute 可以放在任何控制器上管理区域。在此属性中,放置您的代码以确定该人是否可以根据子域访问控制器。如果没有,请将它们重定向到其他地方
    • 对于多租户,我首先尝试了路由,但后来我看到lukesampson.com/post/303245177/… 这个帖子并给了这个机会,我想它会起作用,或者至少我希望如此。你认为这不是一个好的方法吗?在链接中,作者不建议使用区域,因为它可能会变得非常混乱。反正我会试试的。感谢您的回复!
    【解决方案2】:

    我想,您应该将其合并到一个项目中并使用 ASP.NET MVC 区域。创建一个名为“管理员”的区域,并将与管理员相关的内容保存在其中。将与普通用户相关的内容保留在根级别。那你应该很好。您应该能够在这两者之间共享图像,就像您在同一个项目中一样。

    如果你真的想保留它作为单独的项目并部署为单独的网站,你应该通过图片的absolute url引用其他网站中的图片

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2012-03-02
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多