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

Posted

技术标签:

【中文标题】如何将文件从 ASP.NET 上传到另一个 Web 应用程序【英文标题】:How to upload files from ASP.NET to another web application 【发布时间】:2010-09-13 23:34:10 【问题描述】:

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

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

那么我可以在哪里以及如何上传文件,以便可以从两个 Web 应用程序访问它?我应该使用服务还是有其他方式? 以下是我发现的一些相关问题,但我认为它们并未涵盖我的特定场景:How to handle file uploads to a dedicated image server?How to upload a file to a WCF Service?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

因为数据库会变得臃肿,有时这是不可接受的。但这是另一个有很多争论的讨论。

以上是关于如何将文件从 ASP.NET 上传到另一个 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Retrofit 将图像文件从 Android 上传到 ASP.NET(Web Services-ASMX) 上传文件夹

ASP.NET将文件写到另一服务器

如何使用 Retrofit 在 android 中调用图像上传 Web 服务 (ASP.NET) .asmx 文件

上传到 ftp asp.net

如何使用 JavaScript/jQuery 从 ASP.NET Web 窗体的 GridView 内部同时上传多个文件?

如何使用 ASP.NET 将文件从一台机器移动到另一台机器?