如何将文件从ASP.NET上传到另一个Web应用程序

时间:2020-03-06 14:52:15  来源:igfitidea点击:

我有一种情况,我需要从一个Web应用程序上载一个文件,然后在另一个Web应用程序中使用它。我的设置如下。

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

那么,我在哪里以及如何上传文件,以便可以从两个Web应用程序中访问文件?我应该使用服务还是有其他方法?
这是我发现的一些相关问题,但我认为它们不适合我的特定情况:
如何处理文件上传到专用图像服务器?
如何将文件上传到WCF服务?

解决方案

请问为什么不将文件保留在数据库中?这将使传递它变得容易得多。

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

假设我们可以从非管理员Web应用程序访问我们放置在数据库中的文件路径(听起来像是这样),则文件只需要放在两个应用程序都有权访问的位置即可。只有管​​理员应用程序才需要具有写权限。

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

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

  • 将上传的文件保存在服务器上的某个位置。
  • 在任何需要公开指向物理路径的文件的应用程序中创建一个虚拟目录。
  • 将虚拟路径保存在数据库中以获得灵活性