4

我有一个场景,我需要从一个 Web 应用程序上传文件并在另一个应用程序中使用它。我的设置如下。

  • 一台服务器,在 IIS 中托管两个 Web 应用程序 - 两者都是 ASP.NET
  • 其中一个应用程序用于管理另一个应用程序 + 更多东西
  • 我需要从这个管理应用程序上传一个文件,通过 DAL 将路径保存在 DB 中,然后从另一个 Web 应用程序访问该文件,该应用程序将提供该文件以供下载
  • 我将文件保存在磁盘上,只有 DB 中的路径

那么我可以在哪里以及如何上传文件,以便可以从两个 Web 应用程序访问它?我应该使用服务还是有其他方式?
以下是我发现的一些相关问题,但我认为它们并未涵盖我的特定场景:
如何处理文件上传到专用图像服务器?
如何将文件上传到 WCF 服务?

4

4 回答 4

4

由于两个应用程序都在同一台服务器上,这应该很简单:

  • 将上传的文件保存在服务器上的某处。
  • 在任何需要公开指向物理路径的文件的应用程序中创建一个虚拟目录。
  • 将虚拟路径保存在数据库中以获得灵活性
于 2008-09-29T11:45:52.880 回答
2

您可以在每个应用程序中设置一个新的虚拟目录,该目录指向服务器上将文件上传到的同一文件夹。假设您在 c: 驱动器上创建了一个名为“uploads”的新文件夹,即 c:\uploads。然后在 IIS 中设置一个名为“uploads”的新虚拟目录,该目录指向每个 Web 应用程序的 c:\uploads。这应该使两个站点都可以访问文件。

于 2008-09-29T11:44:57.437 回答
0

请问您为什么不将文件保存在数据库中?这将使传递它更容易。

于 2008-09-29T11:38:20.417 回答
0

假设您放入数据库的文件路径可以从非管理员 Web 应用程序(听起来像是)访问,该文件只需要放在两个应用程序都有权访问的地方。只有管​​理员应用程序需要具有写入权限。

您可以在 IIS 管理控制台的网站属性 > 目录安全下配置 IIS 网站将运行的用户帐户。然后只需确保设置适当的目录权限。

于 2008-09-29T11:45:28.840 回答