从外部内部服务器下载文档

本文关键字:文档 下载 服务器 内部 从外部 | 更新日期: 2023-09-27 17:47:21

这有点奇怪....我们有一个在服务器 (A) 上运行的内部 Web 应用程序和一个在服务器 (B) 上运行的文档存储库。

我在页面上有简单的链接,我想使用户能够下载文档(从IIS服务器(A))。但是,在用户单击按钮之前,服务器 (A) 上不存在此文档(因为有 40+ 个文档要显示,无法在页面加载时全部加载它们)

当用户单击链接时(此时我希望被提示下载)文档被复制到服务器 (A),然后重定向到浏览器提示他们下载的页面。我相信我已经正确设置了内容标题,并且可以在FireFox中工作。

IE(7) 只是弹出一个窗口,然后窗口消失, 如果我关闭安全设置,它可以正常工作,但这不是一个选项.

任何想法如何解决这个问题。我无法直接指向服务器 (B) 上的文档

补充:是的,服务器 B 也是 Web 服务器

从外部内部服务器下载文档

如果全世界都能看到服务器 A,服务器 A 可以看到服务器 B。 我建议设置反向代理。

http://www.codeplex.com/urlrewriter

基本上,它的作用是允许世界从服务器B下载,但只能通过反向代理。 您可以使用以下规则使用上面的此库创建反向代理接口。

重写规则 ^/下载/(.*) http://server-b/download/$1 [NC,P]

所以在

http://server-a/download/xyz.pdf

它实际上会从

http://server-b/download/xyz.pdf

但它会像来自服务器 A 一样交付,这在技术上是通过反向代理创建从服务器 A 到服务器 B 的 Web 连接并将 HTTP 响应复制到服务器 A 的响应来实现的。

如果您需要任何帮助,请告诉我。

你能用ajax吗?例如,用户单击发送请求以将文件从 B 获取到 A 的按钮,页面上会显示一个微调器。然后,复制完成后,禁用微调器并为用户提供下载链接。

被投票否决了,没有评论权限,所以我想我会在这里详细说明(也许这只是一个糟糕的解决方案,我看不到它):

  1. 用户通过单击链接请求文件
  2. 请求被发送到服务器 A,它通过 ajax 禁用链接
  3. 服务器 A 将文件从服务器 B 复制到临时目录
  4. 服务器 A 发回指向临时文件夹中文件的链接

如果文档服务器不是网络服务器(SMB,AFS,NFS等),这将起作用。