访问同一解决方案下另一个项目的文件

本文关键字:项目 文件 另一个 解决方案 访问 | 更新日期: 2023-09-27 18:22:04

我有一个C#解决方案,其中包含几个MVC asp.net项目。Project1下有一个存储图像的目录,用户可以从前端编辑、删除和添加这些图像。我需要从Project2访问这些图像。但是,我不想硬编码文件路径。我该怎么做?

访问同一解决方案下另一个项目的文件

您可以将文件作为链接(快捷方式)添加到第二个项目。

下面是一个快速演练。

编辑:听起来我误解了原来的问题。如果你想在多个网站上访问动态创建/删除的图像,那么你可能应该考虑在服务器上创建一个共享文件夹,并将修改过的文件存放在那里。

如果您没有可以登录的专用服务器,如果您可以在IIS中的公共站点下将文件设置为虚拟目录,则可能仍然可以在站点之间共享文件。他们都应该能够访问位于站点根目录中的文件夹。

这不是对您问题的直接回答,但如果您的图像是Project2中的资源,我相信它会有所帮助:http://www.codeproject.com/Articles/2125/Using-Resource-only-Assemblies-with-C

基本上,您需要在Project1中为Project2创建一个ResourceManager,然后使用它来获取资源。它应该非常简单。

我已经回答了一个类似的问题。NetMVC:如何在一个解决方案中的多个项目之间共享脚本?我的答案适用于任何类型的文件(.html、.js、.png、.jpg、.cs、.css)

更新1

为了在运行时执行此操作,我将创建一个数据库(MSSQL)并将文件存储在该数据库的FileStream中(这不会将它们存储在MDF数据库中,FileStream vs Normal files)。这使得您创建的任何项目都可以使用这些文件,并且您可以添加额外的元数据(如用户)以进行额外的授权、日志记录和查询。

选项#1。检索文件(图像)可以由任何应用程序完成,然后由该应用程序提供服务。其优点是,任何类型的带宽使用都可以轻松直接地与为文件提供服务的应用程序绑定。缺点是,如果你的用户正在使用你的多个网站,浏览器不会跨网站缓存文件。

选项#2。检索文件(图像)可以通过单独的文件共享项目来完成。每当另一个项目需要一个文件时,它可以查询数据库,并为文件共享项目URL创建适当的URL,并在客户端检索图像。